首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在python中组合两个逗号分隔的txt文件

在python中组合两个逗号分隔的txt文件
EN

Stack Overflow用户
提问于 2021-04-16 12:09:05
回答 2查看 39关注 0票数 0

我正在尝试将两个txt文件合并在一起。这是我到目前为止所拥有的

代码语言:javascript
复制
fileLake = open("lakes.txt", "r")  # has two columns
listLake = []
for lay in fileLake:
    line = lay.strip().split(",")
    nameLake = line[0]
    waterQuality = line[1]
    listLake = nameLake, waterQuality
    print(listLake)
      
    
    
filePortage = open("portages.txt", "r") # has three columns 

for ages in filePortage:
    inLand = ages.strip().split(",")
    lake1 = inLand[0]
    lake2 = inLand[1]
    distance = inLand[2]
    data = lake1, lake2, distance
    
    
    
     result = data, listLake
     print(result)

输出应如下所示

代码语言:javascript
复制
manomin, winnanage, 0.6, upper, good 

但是由于某些原因,我一直在获取湖泊的最后一个输入,并将portage文件的每一行组合成这样

代码语言:javascript
复制
(('Manomin', ' Winnange', ' 0.6'), ('Caddy', ' average'))
(('Winnange', ' Upper Stewart', ' 0.8'), ('Caddy', ' average'))
(('Lower Stewart', ' Upper Stewart', ' 0.1'), ('Caddy', ' average'))
(('Lower Stewart', ' Geejay', ' 0.4'), ('Caddy', ' average'))
(('Manomin', ' Geejay', ' 0.75'), ('Caddy', ' average'))
(('Crabclaw', ' Winnange', ' 1.25'), ('Caddy', ' average'))
(('Crabclaw', ' Eagle', ' 0.35'), ('Caddy', ' average'))
(('Falcon', ' West Hawk', ' 1.7'), ('Caddy', ' average'))
(('West Hawk', ' Caddy', ' 2.4'), ('Caddy', ' average'))

有没有人能解释一下,我做错了什么

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-04-16 12:21:40

假设这两个文件具有相同的行数,则如下所示:

代码语言:javascript
复制
fileLake = open("lakes.txt", "r")  # has two columns
filePortage = open("portages.txt", "r") # has three columns 

for line1,line2 in zip(fileLake.readlines(), filePortage.readlines()):
    lake = line1.strip().split(",")
    port = line2.strip().split(",")
    print( ",".join(lake + port) )
票数 3
EN

Stack Overflow用户

发布于 2021-04-16 12:26:33

有多种方法可以解决这个问题。

你做错了的事情是:首先迭代filesLake,在第7行,列表的最后一个元素(文件元素)被分配给listLake,所以在倒数第二行,listLake只有一个元素,并为其他文件的每个元素添加这个元素(因为我们在第二个文件的循环中)。

修复:第7行:用listLake.append(tuple(nameLake, waterQuality))替换listLake = nameLake, waterQuality

在第二个循环中执行相同的操作,for data list ->追加数据元组,然后在倒数第二行连接两个列表(将其保持在第二个循环之外) result = data + listLake

不执行任何其他检查。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67118972

复制
相关文章

相似问题

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