【发布时间】:2014-11-02 06:39:02
【问题描述】:
我有两个文件,一个包含由制表符分隔的数据列表,第二个包含一个项目 id 的列表,这是一个字段。我想将较大文件(file1)中的每个第一个字段与最小文件(file2)中的所有行/项目 id 进行比较,然后如果比较的 id 在第二个文件中不存在,我想写所有相关信息第一个文件中的比较项(这是由制表符分隔的行内容)。我尝试了下面的代码,但我遇到了 for 循环的问题。第一个循环不会增加,而第二个 for 循环所有第二个文件行。另外,我希望项目编号只写一次,这是 If 语句中的一个问题。
for lines in alldata:
for lines1 in olddata:
old_data=lines1.split('\r\n')
dataId=old_data[0]
data=lines.split('\t')
photoid=data[0]
if photoid==dataId:
break
else:
#continue
#print('matching',lines)
#break
w=open(head+'......................../1.txt','a')
w.write(lines)
这是文件结构的示例:
15463774518 2014-10-28 08:12:31 2014-10-28 13:12:31
15628560471 2014-10-26 07:40:28 2014-10-26 12:40:28
15444098878 2014-10-26 04:49:19 2014-10-26 09:49:19
15437269197 2014-10-25 09:55:11 2014-10-25 15:55:11
小文件看起来像:
139747955
2417570005
2478707302
1808883457
211514265
【问题讨论】:
-
查看文件内容的样本会非常有帮助。另外,你能给出文件大小的指针吗?它们是否足够小以存储在内存中?
-
文件有不同的大小,因为我使用不同大小的数据,对于大文件,最小。大小为 50KB,其中一些文件超过 5 MB。较小的文件最大为 20KB。
标签: python file comparison