gpt4 book ai didi

python - 编辑 CSV 文件中的错误行

转载 作者:行者123 更新时间:2023-12-04 15:12:49 25 4
gpt4 key购买 nike

我有一个 CSV 文件如下:

fruit, country,  city
banana, japan, tokyo
apple, brazil, rio
apple, korea, south, seoul
banana, denmark, copenhagen

这是一个例子,实际上,我在多个大文件中都有这个问题。问题是我无法用逗号分隔符读取第 4 行,因为它的一列太多了。

我的想法是

  1. 用csv.reader打开文件
  2. 查找第 2 列中有 term1 且第 3 列中有 term2 的行(在我的示例中,term1=korea 和 term2=south)
  3. 将第 2 列中的 term1 替换为组合的 term1 和 term2(韩国南部)并删除该行中的第 3 列
  4. 保存修改后的文件

在下面的代码中,我已经完成了前两个步骤,但是我卡在了第 3 步和第 4 步。

import csv

path = r'C:\Users\jlobo\Desktop\example.txt'

with open(path, newline='') as csvfile:
csv_read = csv.reader(csvfile, delimiter=',', quotechar='"') #

for row in csv_read:
search_terms1 = ["korea"]
search_terms2 = ["south"]

if any([term in row[1] for term in search_terms1]) and any([term in row[2] for term in search_terms2]):
print(row)

如何执行第 3 步和第 4 步?或者,如果相关,是否有解决该问题的替代方案?

最佳答案

首先定义一个列表 ARRAY = [],然后在处理行时将它们附加到该数组

search_terms1 = ["korea"]
search_terms2 = ["south"]

if any([term in row[1] for term in search_terms1]) and any([term in row[2] for term in search_terms2]):
row[1] = row[2] + row[1] # combie south and korea
row.pop(2) # remove the 3rd element

ARRAY.append(row)

然后就可以重新写入文件了

with open("new_file.csv", "w") as f:
for row in ARRAY: # Write each row
f.write(", ".join(row))
f.write("\n") # add a new line

我真的不知道 csv.reader 是如何工作的,可能有一些功能比这个做得更好,但上面的代码片段应该工作得很好。

关于python - 编辑 CSV 文件中的错误行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64891034/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com