1

次のようなフォルダー階層を扱っています。

c:/users/rox/halogen/iodine/(some .txt files)
c:/users/rox/halogen/chlorine/(some .txt files)
c:/users/rox/inert/helium/(some .txt files)
c:/users/rox/inert/argon/(some .txt files)

今、私はos.walkファイルを使用して処理することにより、フォルダー全体を繰り返し処理していました。
しかし、問題は、ハロゲンの下のすべてのサブフォルダーを分析した後、フォルダー「ハロゲン」に分析出力を生成したい場合、どうすればよいですか...私は使用していました:

for root,dirs,files in os.walk(path,'*.txt):
    .....
    .......[processing file]
    out.write(.....)    # writing output in the folder which we are analyzing

ただし、出力を 2 段階前のフォルダー (つまり、ハロゲンまたは不活性) に書き込む方法は..

4

2 に答える 2

2

ウォークの前に出力ファイルを開きます。

out = open(os.path.join(path, outputfilename), 'w')

次に、入力を処理するためのパスをたどります

for root,dirs,files in os.walk(path,'*.txt):
    .....
    out.write(..)

このようにして、すでにルート パスを知っています。それ以外の場合は、パスが 2 歩後ろに下がっていることが確実な場合です。

os.path.join(current_path, '..', '..')

フォルダパスが表示されます.2ステップ後退します

于 2012-06-05T18:27:53.650 に答える
0

次のように、処理しているディレクトリからの相対パスを使用して出力ファイルを開くことができます。

for root, dirs, files in os.walk(path, '*.txt'):
    out = open(os.path.join(root, '..', '..'), 'a')
    out.write(...)
于 2012-06-05T18:32:28.903 に答える