我正在尝试将两个txt文件合并在一起。这是我到目前为止所拥有的
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)输出应如下所示
manomin, winnanage, 0.6, upper, good 但是由于某些原因,我一直在获取湖泊的最后一个输入,并将portage文件的每一行组合成这样
(('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'))有没有人能解释一下,我做错了什么
谢谢
发布于 2021-04-16 12:21:40
假设这两个文件具有相同的行数,则如下所示:
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) )发布于 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
不执行任何其他检查。
https://stackoverflow.com/questions/67118972
复制相似问题