使用Python 3加载两个文件,然后使用文件A的数据在文件B中查找记录,然后将该记录写入文件C。
第一步,我试图打开文件A和B,搜索匹配项,然后将匹配项写入文件C,但是它没有生成任何输出。
fileA = open('C:\\tmp\\somefile.csv', 'r')
fileB = open('C:\\tmp\\somefile.txt', 'r')
fileC = open('C:\\tmp\\somefile.txt', 'w')
for line1 in fileA:
for line1 in fileB:
if line1 == line1:
fileC.write("%s\n" %(line1))
一旦我开始生成从文件A和文件B到文件C的匹配字符串,我便可以从文件B中选择记录并将其写入文件C
答案 0 :(得分:1)
您需要使用.read()方法,如果要匹配beetwen行,可以将它们拆分:
fileA = open('C:\\tmp\\somefile.csv', 'r')
fileB = open('C:\\tmp\\somefile.txt', 'r')
fileC = open('C:\\tmp\\somefile.txt', 'w')
#if you looking for char level match delete .split('\n') 's
for line1 in fileA.read().split('\n'):
for line12 in fileB.read().split('\n'):
if line1 and line1 == line2: #your if statement wrong correct it
fileC.write("%s\n" %(line1))
编辑:在if语句中添加了第1行,用于检查空行。
答案 1 :(得分:0)
您需要通过readlines()读取文件的所有行,然后进行如下比较
fileA = open('C:\\tmp\\somefile.csv', 'r')
fileB = open('C:\\tmp\\somefile.txt', 'r')
fileC = open('C:\\tmp\\somefile.txt', 'w')
#Read all lines in the files
linesA = fileA.readlines()
linesB = fileB.readlines()
#Iterate through the lines
for line1 in linesA:
for line2 in linesB:
if line1 and line2: #Check for empty lines
if line1 == line2: #If lines match, write them to fileC
fileC.write("%s\n" %(line1))