首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用python进行txt文件合并?

如何使用python进行txt文件合并?
EN

Stack Overflow用户
提问于 2017-07-31 15:46:04
回答 2查看 159关注 0票数 0

我有两个txt文件。我想使用python合并这些文件。我刚开始学习蟒蛇,需要一些帮助。我试着搜索google来解决这个问题,但是我找不到解决办法。

所以请帮帮我。

下面是我的两个txt文件。

a.txt有这个数据。

代码语言:javascript
复制
Zone,alias1,alias2
PA1_H1,PA1,H1
PA2_H2,PA2,H2

b.txt有这个数据。

代码语言:javascript
复制
WWN,Port,Aliases
da,0,PA1
dq,1,PA2
d2,3,H1
d4,1,H2

预期产出

代码语言:javascript
复制
Zone,alias1,WWN,Port,alias2,WWN,Port
PA1_H1,PA1,da,0,H1,d2,3
PA2_H2,PA2,dq,1,H2,d4,1

我尝试了下面的脚本,但我不能合并。

代码语言:javascript
复制
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

如何合并文件?你能给我举个例子吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-31 16:38:58

这里有一些代码可以让你开始。这段代码将向您展示如何打开两个文件并将它们组合起来。然后,您所需要做的就是修改代码,以便使用您想要的任何特定规则合并文件。

代码语言:javascript
复制
    # 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
票数 1
EN

Stack Overflow用户

发布于 2017-07-31 15:55:18

这应该能让你开始

代码语言:javascript
复制
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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45420210

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档