これは、この機能を書く最も簡潔な方法ではありませんが、私は裸で、学ぶ!私の目標は、特定のディレクトリ内のすべてのテキストファイルを1つのメインテキストファイルに結合することです。pythonを使って(同じディレクトリ内の).txtファイルを1つのメインの.txtファイルに結合する
最初にこの機能を実行すると、すべてが完全に機能します。マージされた新しいファイルは、元のファイルと同じディレクトリに保存されます。関数を再実行しようとすると、エラーメッセージが表示されます。
def merge_files(path):
''' mergers txt files into one main file'''
now = datetime.datetime.now()
date = ("%s_%s_%s_") %(now.month,now.day,now.year)
files_to_merge = os.listdir(path)
merged_file_list = []
counter = 1
for file in files_to_merge:
if file.endswith(".txt"):
with open(path+("file"+str(counter))+".txt","r") as files:
files = files.readlines()
merged_file_list.append(files)
counter = counter + 1
new_list = ("\n").join(["".join(x) for x in merged_file_list])
print (new_list)
with open (path + date + "final.txt" ,"w") as final:
return final.write(new_list)
は、ここで私は取得エラーメッセージです:
IOError: [Errno 2] No such file or directory: '/Users/star/Desktop/udemy/Sample-Files/file4.txt'
私はカウンターでworng何かがあります知っているが、私はわかりませんよ!
問題は、マージされたファイルが、同じディレクトリにあり、拡張子がtxtであるため、2回目に考慮されることです。しかし、意図的なのかもしれませんか?とにかく、ディレクトリの内容が異なるため、2回目の動作が異なります。 –
ファイルがその場所に存在しないことを示すエラーメッセージが表示されます。 –
エラーメッセージは、ファイルが見つからないことを示しています。私はあなたがファイルの場所を生成したと思います。単に 'open(os.path.join(path、file)、" r ")' –