我在'\ data'中有一些txt文件,例如'1.txt'和'2.txt'。现在我想在另一个名为'3.txt'的文件中添加这两个文件的最后一行,但我只能将'1.txt'的最后一行添加到'3.txt'
Apr 6 12:20:11 XXX.local CalendarAgent[229]: [com.apple.calendar.store.log.ICS] [CaliCalTranslator: Event 97323C3B-753D-46E5-830E-E182BEAA5E0D has invalid instance on date 2016-04-11 00:00:00 +0000. Filtering]
答案 0 :(得分:0)
您正在使用' w'打开输出文件,这意味着'写',因此它将覆盖任何现有内容(而不是' a' - 追加)。
因此,假设您在\ data文件夹中的每个文件上多次运行脚本,那么您只是一遍又一遍地覆盖该文件,这就是为什么最后只能获得一行的原因。
答案 1 :(得分:0)
正如yozziz74所说,你是在写模式下打开文件,因此每次都会覆盖,但你还没有定义要写入文件的行变量。如果想要的效果是覆盖每个,那么保持'w'否则改为'a'。
此代码应该可以满足您的需求:
from os import listdir
from sys import argv
from os.path import exists
files = [ file for file in listdir('.') if file.endswith('.txt') ]
to_file=argv[1]
out_file=open(to_file,'a')
for file in files:
in_file=open(file)
lines=in_file.readlines()
last_line=lines[-1]
in_file.close()
out_file.write(last_line)
in_file.close()
out_file.close()