2

次のようなディレクトリツリー形式の巨大なデータがあります。
c:/user/name/class/std/section I to VI [all section has individual folder i.e. 6 folder in total and all folder have 100+ files to be processed]
たとえば、ファイルを含むフォルダーを指定すると、関数Section Iを使用して内部のファイルを処理するスクリプトを作成しました。 1つのディレクトリに入る>ファイルを処理する>ディレクトリを離れる>別のディレクトリに入る>などのように、ディレクトリをたどることができるスクリプトを書くことは可能ですか? 助けてください。glob.iglob

4

3 に答える 3

4

あなたはこのコードを試すことができます:

import os
folder = 'C:'

for root, dirs, files in os.walk(folder):
    for name in files:
        print os.path.join(root, name)
    for name in dirs:
        print os.path.join(root, name)

アップデート:

import os folder ='C:'

for root, dirs, files in os.walk(folder):
    for name in files:
        nm, ext = os.path.splitext(name)
        if ext == ".csv":
            print os.path.join(root, name)
于 2012-05-16T11:45:24.893 に答える
0
import os
for (dirpath, dirnames, filenames) in os.walk(directory):
    # Do some processing

これは、指定されたディレクトリのルートを反復処理します。c:/user/name/class/stdそこに含まれるすべてのフォルダーを入力し、それらに含まれるフォルダーとファイルを表示します。これで、賢明な処理に必要なことを実行できるはずです。

于 2012-05-16T11:49:16.840 に答える
0

Aragonの解決策に関するAbhisekのコメントに対処する:

os フォルダーのインポート = 'C:'

for root, dirs, files in os.walk(folder):
    for name in files:
        (base, ext) = os.path.splitext(name)
        if ext in "csv":
            print os.path.join(root, name)
于 2012-05-16T12:28:56.507 に答える