Python:比较两个文本文件中具有不同列数的部分行

时间:2017-10-13 08:41:44

标签: python

我有两个长文本文件(~50k行),其结构如下:

time   index   length    a    b    c    ...

所有这些都是整数。 'length'告诉我后面的数字(这里标记为'a','b','c',......),每行可以有不同的数字(并且对于同一行中的数字也不相同)两个文件)。这些数字是排序的。现在,我需要找到文件1的第1行中出现的数字“a”,“b”,“c”中有多少也出现在文件2的第1行中,依此类推整个文件。我和Pandas一起尝试了这个,但是可变数量的列给了我一些麻烦。

1 个答案:

答案 0 :(得分:0)

这是一个想法:

  • 获取文件的第一行
  • 获取文件的第一行b
  • 使用第一行创建一个列表。在两个列表中的每个空格("")分隔每个项目
  • 删除前3项(时间,索引和长度)。
  • 对于文件列表a中的每个项目,请在文件列表b
  • 中进行搜索
  • 对文件中的每一行重复

这可能会对您有所帮助:

filea = "C:\file\path\a.txt"
myfilea = open(filea, 'r')
data=myfilea.readlines()

fileb = "C:\file\path\a.txt"
myfileb = open(fileb, 'r')
datb=myfileb.readlines()

for ia in range (0,len(data)):
    linea = []
    lineb = []
    linea = data[ia].split()
    lineb = datb[ia].split()
    for x in range (0,len(linea)):
        if(linea[x] in lineb):
            print(str(linea[x])+" has been found")