【发布时间】:2019-07-05 05:53:45
【问题描述】:
问题是如何从一个 CSV 文件中读取文本、识别文件中的某个关键字、读取带有关键字的行,然后将这些行写入另一个文件。虽然这个问题在逻辑上看起来很简单,但在句法上却被证明具有挑战性。
下面的代码是我试过的代码。有趣的是, print(row) 行能够准确打印我试图写入第二个 CSV 文件的信息。但是,我无法使用 CSV 写入模块 (https://docs.python.org/3.3/library/csv.html) 完成相同的任务。
import csv
csvfile = open('read_file.csv', 'r')
read = csv.reader(csvfile)
for row in csvfile:
if str('key_word') in row:
#print(row)
with open('write_file.csv', "w") as csv_file:
writer = csv.writer(csv_file, delimiter=',')
writer.writerow(row)
代码运行成功。但是,输出显得随机且杂乱无章。从本质上讲,迭代 CSV 文件并以有组织的逐行方式写入行似乎存在问题。
【问题讨论】:
-
问题不清楚。请添加 csv 样本并解释使该行写入输出 csv 的条件是什么
-
如果您在循环中以
w模式打开文件,那么您会删除以前的内容。您只需在开始时打开它一次,或者您必须使用模式a(附加)。