0

だから私はプログラミングの初心者で、Pythonで基本的に一連の列を持つテキストファイルを開き、行の文字列に基づいて3つの異なるテキストファイルにデータを書き込むプログラムを作成しようとしています. 私のプログラムは現在、ディレクトリを特定の出力フォルダーに変更してos.chdir、テキストファイルを開くことができるようにしていますが、次のようなことをしたいのです:

次のように設定されたフォルダを想像してください。 フォルダには多数のSourceフォルダが含まれています。Nこれらの各フォルダーには、N多数の出力フォルダーが含まれています。各出力フォルダーには 1 が含まれますResults.txt

アイデアは、プログラムをソースフォルダーから開始し、 を調べFolder 1、 を探しoutput 1、ファイルを開いて.txtから実行することです。完了したら、に戻ってfolder 1開きoutput 2、もう一度実行する必要があります。次に、に戻りFolder 1、それ以上の出力フォルダーが見つからない場合は、に移動してからFolder A入力Folder 2し、フォルダーがなくなるまでプロセスを繰り返す必要があります。正直なところ、これを実際にどこから始めればよいかわかりません.txtファイルをすべて印刷する小さなプログラムを作成するのが最善ですが、それらを開く方法がまったくわかりません. 私の質問が理にかなっていることを願っています。助けてくれてありがとう。

4

5 に答える 5

2

ディレクトリ内の各ファイルを再帰的に処理するだけでよい場合:

import os

def process_dir(dir):
    for subdir, dirs, files in os.walk(dir):
        for file in files:
            file_path = os.path.join(subdir, file)
            print file_path
            # process file here

これにより、ルート ディレクトリ内の各ファイルが再帰的に処理されます。条件付き反復を探している場合は、ループを少し賢くする必要があるかもしれません。

于 2013-11-07T08:43:27.543 に答える
0
dirlist = os.listdir(os.getcwd())
dirlist = filter(lambda x: os.path.isdir(x), filelist)

for dirname in dirlist:
    print os.path.join(os.getcwd(),dirname,'Results.txt')
于 2013-11-07T08:51:30.697 に答える
0

ベースフォルダのパスを読み込んで変数に格納し、サブフォルダに移動してchdirを使ってテキストファイルを処理し、ベースパスがディレクトリを変更してサブフォルダを再度読み込みます。

于 2013-11-07T08:43:07.117 に答える