5

フォルダーとサブフォルダーのディレクトリがあります。私がやろうとしているのは、フォルダー内のサブフォルダーの数を取得し、matplotlib を使用して散布図にプロットすることです。ファイルの数を取得するコードはありますが、フォルダー内のサブフォルダーの数を取得するにはどうすればよいですか。これにはおそらく簡単な答えがありますが、私はPythonの初心者です。どんな助けでも大歓迎です。

これは、ファイルの数を取得するためにこれまでに持っているコードです:

import os
import matplotlib.pyplot as plt

def fcount(path):
    count1 = 0
    for f in os.listdir(path):
        if os.path.isfile(os.path.join(path, f)):
            count1 += 1

    return count1

path = "/Desktop/lay"
print fcount(path)
4

5 に答える 5

10
import os

def fcount(path, map = {}):
  count = 0
  for f in os.listdir(path):
    child = os.path.join(path, f)
    if os.path.isdir(child):
      child_count = fcount(child, map)
      count += child_count + 1 # unless include self
  map[path] = count
  return count

path = "/Desktop/lay"
map = {}
print fcount(path, map)

ここに完全な実装とテストがあります。現在のフォルダーを含まないサブフォルダーの数を返します。それを変更したい場合は、コメントの代わりに最後の行に + 1 を入れる必要があります。

于 2013-11-02T23:17:19.397 に答える
4

次のレシピを試してください。

import os.path  
import glob  
folder = glob.glob("path/*")
len(folder)
于 2016-06-04T11:59:28.883 に答える
3

に答える:

フォルダー内のサブフォルダーの数を取得する方法

os.path.isdirと同様に関数を使用して、os.path.isfileディレクトリをカウントできます。

于 2013-11-02T22:11:40.443 に答える