【发布时间】:2016-09-29 18:09:53
【问题描述】:
我有一个 python 代码,它比较两个文件并返回公共行并将它们写入结果文件。我使用的是 MAC 机器。
脚本.py
with open('temp1.csv', 'r') as file1:
with open('serialnumbers.txt', 'r') as file2:
same = set(file1).intersection(file2)
print same
with open('results.csv', 'w') as file_out:
for line in same:
file_out.write(line)
print line
temp1.csv
M11435TDS144
M11543TH4292
SN005
M11509TD9937
M11543TH4258
SN005
SN006
SN007
序列号.txt
G1A114042400571
M11251TH1230
M11543TH4258
M11435TDS144
M11543TH4292
M11509TD9937
以上脚本在mac上的输出是
设置([])
如果我在 Windows 上运行相同的脚本,它工作正常。我发现这是mac上的一个csv问题。我该如何解决这个问题?
【问题讨论】:
-
如果是 Windows 上的 CSV 文件,则使用“\r\n”分隔符。我假设一个文件有“\r\n”而另一个只有“\n”。你能检查一下吗?
-
在 Mac 上测试,得到的输出与您描述的不同...
-
试试:
same = set(l.strip() for l in file1).intersection(l.strip() for l in file2) -
能否请您在每个临时文件和序列号文件中添加一个额外的新行并再次测试 - 谢谢
-
这是哪个python版本?
标签: python macos csv line-breaks file-writing