複数のサブディレクトリを含むrootっぽいディレクトリがあり、そのすべてにファイル名data.txtが含まれています。私がやりたいのは、「ルート」ディレクトリを取得し、すべてのサブディレクトリを読み取り、サブディレクトリ内のすべての「data.txt」を読み取り、すべてのdata.txtファイルから次のファイルに書き込むスクリプトを作成することです。出力ファイル。
これが私のコードの抜粋です:
import os
import sys
rootdir = sys.argv[1]
with open('output.txt','w') as fout:
for root, subFolders, files in os.walk(rootdir):
for file in files:
if (file == 'data.txt'):
#print file
with open(file,'r') as fin:
for lines in fin:
dosomething()
私のdosomething()部分-その部分を1つのファイルに対してのみ実行している場合に、それが機能することをテストおよび確認しました。また、代わりにファイルを印刷するように指示すると(コメント化された行)、スクリプトが「data.txt」を出力することも確認しました。
今、私がそれを実行すると、Pythonは私にこのエラーを与えます:
File "recursive.py", line 11, in <module>
with open(file,'r') as fin:
IOError: [Errno 2] No such file or directory: 'data.txt'
なぜ見つからないのかわかりません。結局、「ファイルの印刷」行のコメントを外すと、data.txtが出力されます。私は間違って何をしていますか?