我知道這不是寫這個函數的最簡潔的方式,而是裸露在我身邊,我是一個靜止的,學習!我的目標是將給定目錄中的所有文本文件合併到一個主文本文件中。使用python將.txt文件(在同一個目錄中)合併爲一個主要的.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'
我知道有什麼東西撥錯與對,但我不知道是什麼!
我懷疑問題在於你的合併文件第二次被考慮,因爲它們在相同的目錄和txt擴展名。但也許這是故意的?無論如何,由於目錄內容不同,行爲第二次不同。 –
錯誤消息告訴您,您的文件在該位置不存在。 –
錯誤信息告訴你該文件沒有找到,我想你生成文件位置的方式,你可以簡單地使用'open(os.path.join(path,file),「r」)' –