gpt4 book ai didi

python - 搜索文件并将搜索词所在的行保存到新文件中

转载 作者:太空宇宙 更新时间:2023-11-04 06:30:39 25 4
gpt4 key购买 nike

我有两个文件。一个是 csv,包含搜索字符串(每行一个),另一个是一个巨大的文件,在每行的开头包含搜索词,但有额外的信息,我想在这些信息之后提取。

搜索词文件名为“search.csv”,如下所示:

3ksr

3ky8

2g5w

2gou

包含其他信息的文件名为“CSA.txt”,如下所示:

3ksr,INFO.....

3ky8,INFO.....

2g5w,INFO.....

2gou,INFO.....

但是,这是一个非常大的文件(超过 8mb),每个搜索词出现不止一次,但每次出现的信息都不同。我有一些示例代码:

import fileinput
import csv

csa = fileinput.input("CSA.dat", inplace=1)
pdb = csv.reader(open("search.csv"))
outfile = csv.writer(open("outfile.csv"), dielect = 'excel', delimiter = '\t')

for id in pdb:
for line in csa:
if id in str(line):
outfile.writerow([id, line])

csa.close()

但是,这段代码不起作用,每次我尝试运行它时似乎都删除了 CSA.dat(它在存档中备份),或者它说“文本文件忙”。请帮忙!提前致谢!

最佳答案

取决于您有多少个搜索词,并假设它们都是 4 个字符:

terms = open('search.csv').split(',')

with open('CSV.dat', 'r') as f:
for line in f:
if line[:4] in terms:
#do something with line
print line

如果它们不是 4 个字符,您可以执行 line[:line.find(',')] 它将返回第一个 ',',或者如果没有找到它将返回整行。

编辑:我从未听说过 fileinput,但我只是看了看,然后“你做错了。”

Helper class to quickly write a loop over all standard input files.

fileinput 用于将文件作为命令行参数传递给您的程序,而您并没有这样做。 open(filename, mode) 是您在 Python 中打开文件的方式。

对于(看起来)如此简单的事情,csv 阅读器有点矫枉过正,但如果您真的想要 excel 格式的文件,它可能值得用来编写文件。

关于python - 搜索文件并将搜索词所在的行保存到新文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3321962/

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