我正在比较2个CSV文件,其中一个已经存在,其中一个是通过运行这段代码来生成的。基本上,它应该通过最新的工作表,看看是否添加了新行(仅限A列)并制作差异文件并将新添加的行从最新文件复制到差异文件。她是我正在使用的代码:
import os, csv, time, glob
timestr = time.strftime("%Y%m%d-%H%M%S")
f=open("B:/Test_folder/parse_file1_"+timestr+'.csv', 'w+', newline='' )
w=csv.writer(f)
for dirs in os.listdir("B:/folder1"):
w.writerow([dirs])
newest = max(glob.iglob('B:/Test_folder/parse_file1_*.csv'), key=os.path.getctime)
oldest = min(glob.iglob('B:/Test_folder/parse_file1_*.csv'), key=os.path.getctime)
with open(oldest, 'r') as t1, open(newest, 'r') as t2:
fileone = t1.readlines()
filetwo = t2.readlines()
with open('B:/Test_folder/file1_diff.csv', 'w') as outFile:
for line in filetwo:
if line not in fileone:
outFile.write(line)
outFile.close()
最旧的文件(已存在)= parse_file1_20170328_currentime
A
B
C
和 最新文件= parse_file2_20170329_currentime
A
B
C
D
预期产量应为: file1_diff
D
我的问题是,即使它正在创建一个diff文件,它也不会将D复制到CSV文件。 我在这里用逻辑搞砸了,请帮忙
由于
答案 0 :(得分:0)
也许删除空格会有所帮助: 对于filetwo中的行: 如果line.strip()不在fileone中: outFile.write(line.strip())