我试图打开两个文件然后在第一个文件中取第一行,将其写入out文件,然后取第二个文件中的第一行并将其附加到输出文件中的同一行,由一个标签。
我试图对此进行编码,我的outfile最终成为第一个文件的全部内容,然后是第二个文件的全部内容。我包含print语句只是因为我希望在脚本运行时看到终端中发生的事情,这就是他们在那里的原因。有什么想法吗?
import sys
InFileName = sys.argv[1]
InFile = open(InFileName, 'r')
InFileName2 = sys.argv[2]
InFile2 = open(InFileName2, 'r')
OutFileName = "combined_data.txt"
OutFile = open(OutFileName, 'a')
for line in InFile:
OutFile.write(str(line) + '\t')
print line
for line2 in InFile2:
OutFile.write(str(line2) + '\n')
print line
InFile.close()
InFile2.close()
OutFile.close()
答案 0 :(得分:4)
您可以使用zip
:
with open(file1) as f1,open(file2) as f2,open("combined_data.txt","w") as fout:
for t in zip(f1,f2):
fout.write('\t'.join(x.strip() for x in t)+'\n')
如果您的两个文件的行数不同(或者真的很大),您可以使用itertools.izip_longest(f1,f2,fillvalue='')
答案 1 :(得分:0)
也许这会给你一些想法: Adding entries from multiple files in python
o = open('output.txt', 'wb')
fh = open('input.txt', 'rb')
fh2 = open('input2.txt', 'rb')
for line in fh.readlines():
o.write(line.strip('\r\n') + '\t' + fh2.readline().strip('\r\n') + '\n')
## If you want to write remaining files from input2.txt:
# for line in fh2.readlines():
# o.write(line.rstrip('\r\n') + '\n')
fh.close()
fh2.close()
o.close()
这会给你:
line1_of_file_1 line1_of_file_2
line2_of_file_1 line2_of_file_2
line3_of_file_1 line3_of_file_2
line4_of_file_1 line4_of_file_2
我的输出示例中的空格是[tab] 注意:出于显而易见的原因,没有行结尾附加到文件中。
为了使其正常工作,在文件1和2中都需要适当的线条。 要检查一下:
print 'File 1:'
f = open('input.txt', 'rb')
print [r.read[:200]]
f.close()
print 'File 2:'
f = open('input2.txt', 'rb')
print [r.read[:200]]
f.close()
这应该给你类似
的东西文件1:
['这是\ t很多\ t text \ r \ n用几行\ r \ nendings \ r \ n'] 档案2:
[ '给\ r \ nMe的\ r \ n某些\ r \ nLove \ r \ n']