gpt4 book ai didi

python - 有没有更好的方法从 Python 中的文件中读取元素?

转载 作者:太空狗 更新时间:2023-10-30 02:22:56 25 4
gpt4 key购买 nike

我编写了一个粗略的 Python 程序来从 CSV 文件的索引中提取短语并将这些行写入另一个文件。

import csv

total = 0

ifile = open('data.csv', "rb")
reader = csv.reader(ifile)

ofile = open('newdata_write.csv', "wb")
writer = csv.writer(ofile, delimiter='\t', quotechar='"', quoting=csv.QUOTE_ALL)

for row in reader:
if ("some text") in row[x]:
total = total + 1
writer.writerow(row)
elif ("some more text") in row[x]:
total = total + 1
writer.writerow(row)
elif ("even more text I'm looking for") in row[x]:
total = total + 1
writer.writerow(row)

< many, many more lines >

print "\nTotal = %d." % total

ifile.close()

我的问题是:难道没有更好(更优雅/更简洁)的 Pythonic 方式来做到这一点吗?我觉得这是一个不知道我不知道的情况。我正在搜索的 CSV 文件并不大(3863 行,669 KB)所以我认为没有必要使用 SQL to solve this ,尽管我当然对此持开放态度。

我是一名 Python 新手,热爱这门语言并通过正常 channel (书籍、教程、Project Euler、Stack Overflow)自学。

非常感谢任何建议。

最佳答案

您正在寻找 any使用生成器表达式:

matches = "some text", "some more text", "even more text I'm looking for"
for row in reader:
if any(match in row for match in matches):
total += 1
writer.writerow(row)

或者,您可以一次写入所有行:

writer.writerows(row for row in reader if any(match in row for match in matches))

但正如所写,这并不能为您提供总数。

关于python - 有没有更好的方法从 Python 中的文件中读取元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7664271/

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