我是python的新手,我试图匹配我从两个.txt中提取的数据,如果每个文件的每一行的第一个元素与每个文件的每一行的第一个元素重合,它应该给出一个输出,将该信息写在Excel工作表上。 到目前为止这是我得到的,但我被阻止所以我会感激任何帮助。 我只是使用for循环迭代,所以我不知道如何做到这样我可以比较两个文件,如果有匹配写没有for循环
import xlwt
c1=-1
c2=0
file1=open('/Users/whatever.txt','r')
file2=open('/Users/whatever2.txt','r')
style0=xlwt.easyxf('font:name Times New Roman,colour black,bold on')
wb=xlwt.Workbook()
ws=wb.add_sheet('x',cell_overwrite_ok=True)
ws2=wb.add_sheet('y',cell_overwrite_ok=True)
row=0
row2=0
for lineA in file1:
split=lineA.split('\t')
split.pop(5)
split.pop(5)
split.pop(6)
split.pop(6)
split.pop(6)
split.pop(6)
split.pop(7)
split.pop(7)
split.pop(7)
if '123\n'in split:
continue
elif '567\n' in split:
continue
elif '8910\n' in split:
continue
else:
ws.write(0,0,euk,style0)
ws.write(row,0,str(c1),style0)
ws.write(row,1,split[0],style0)
ws.write(row,2,split[1],style0)
ws.write(row,3,split[2],style0)
ws.write(row,4,split[3],style0)
ws.write(row,5,split[4],style0)
ws.write(row,6,split[5],style0)
ws.write(row,7,split[6],style0)
ws.write(row,8,split[7],style0)
row+=1
for lineB in file2:
split1=lineB.split('\t')
split1.pop(5)
split1.pop(5)
split1.pop(5)
split1.pop(5)
split1.pop(5)
split1.pop(5)
split1.pop(5)
split1.pop(-2)
split1.pop(-2)
split1.pop(-2)
if '654\n' in split1:
ws2.write(0,0,prok,style0)
ws2.write(row2,0,str(c2),style0)
ws2.write(row2,1,split1[0],style0)
ws2.write(row2,2,split1[1],style0)
ws2.write(row2,3,split1[2],style0)
ws2.write(row2,4,split1[3],style0)
ws2.write(row2,5,split1[4],style0)
ws2.write(row2,6,split1[5],style0)
ws2.write(row2,7,split1[6],style0)
#print(split1)
c2=c2+1
row2+=1
wb.save('Hello.xls')
答案 0 :(得分:0)
我想我会遵循你想要做的事情。比较每一行的第一个元素应该不会太困难。请尝试以下方法:
file1=open('/Users/whatever.txt','r')
file2=open('/Users/whatever2.txt','r')
for line in file1.readlines():
# Split the line by tab spaces
split_line = line.split('/t')
# get the first element
l1 = split_line[0]
# Split the first line of file2 by tab spaces
split_line2 = file2.readline().split("/t")
# Get the first element of the file2 split line
l2 = split_line2[0]
# Check if they match
if l1 == l2:
# If they match, add it to your file
# Add your write code here
# If they don't match, nothing will be written
以下内容应该相同,但更简洁:
for line in file1.readlines():
if line.split("/t")[0] == file2.readline().split("/t")[0]:
# Add your write code here