我的输出CSV文件没有复制数据

时间:2017-03-30 00:59:43

标签: python python-2.7 excel-2010 notepad++ python-3.4

我正在比较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文件。 我在这里用逻辑搞砸了,请帮忙

由于

1 个答案:

答案 0 :(得分:0)

也许删除空格会有所帮助:     对于filetwo中的行:         如果line.strip()不在fileone中:             outFile.write(line.strip())