如何使用python txt文件合并?
问题描述:
我有两个txt文件。我想用python合并这些文件。 我刚开始学习python,需要一些帮助。我试图搜索谷歌解决这个问题,但我找不到解决方案。如何使用python txt文件合并?
所以请帮助我。
下面是我的两个txt文件。
a.txt
有此数据。
Zone,alias1,alias2
PA1_H1,PA1,H1
PA2_H2,PA2,H2
b.txt
有此数据。
WWN,Port,Aliases
da,0,PA1
dq,1,PA2
d2,3,H1
d4,1,H2
期望输出
Zone,alias1,WWN,Port,alias2,WWN,Port
PA1_H1,PA1,da,0,H1,d2,3
PA2_H2,PA2,dq,1,H2,d4,1
我想下面的脚本,但我不能合并。
row = []
for line in open("mod_alias.txt"):
line = line.split(',')[2]
row.append(line)
strings = row
for line in open("mod_all_cfgshow.txt"):
if any(s in line for s in strings):
field1,field2,field3 = line.split(',')
print field1,field2,field3
如何合并文件? 你能告诉我一个例子吗?
答
这应该让你开始
import csv
# read all the data in b.txt into a dictionary, key'd by the alias. We'll look this up later
data = {}
with open("b.txt") as infile:
for row in csv.DictReader(infile):
alias = row["Aliases"]
data[alias] = row
with open("a.txt") as fin, open("output.txt", 'w') as fout:
infile = csv.DictReader(fin)
outfile = csv.DictWriter(headers=infile.headers+data.keys())
for row in infile:
row.update(data[row["Aliases"]]) # update the row with the data from b.txt
outfile.writerow(row)
+0
非常感谢。但是你的脚本有错误。 'Traceback(last recent call last): 文件“test7.py”,第12行,在
答
下面是一些代码,让你开始。此代码将向您展示如何打开这两个文件并将其合并。然后,您需要做的就是修改代码,以使用您希望的任何特定规则合并文件。
# Open Files, read data to lists, and strip data
with open("b.txt") as bFile:
bContent = bFile.readlines()
bContent = [line.strip() for line in bContent]
with open('a.txt') as aFile:
aContent = aFile.readlines()
aContent = [line.strip() for line in aContent]
# Create a file to store the merged text
m = open('merged.txt','w')
# Cycle through the text read from files and merge, and then print to file
for aLine, bLine in zip(aContent, bContent):
mergedString = aLine+','+bLine
print>>m,mergedString
合并的标准是什么?基于哪一列? –