gpt4 book ai didi

python - 从另一个文本文件中搜索一个文件中列出的字符串?

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

我想在另一个文本文件中查找 list.txt(每行一个字符串)中列出的字符串,以防万一我发现它打印“string,one_sentence”以防找不到“string,another_sentence”。我正在使用以下代码,但它只在文件 list.txt 的字符串列表中找到最后一个字符串。无法理解可能是什么原因?

data = open('c:/tmp/textfile.TXT').read()
for x in open('c:/tmp/list.txt').readlines():
if x in data:
print(x,',one_sentence')
else:
print(x,',another_sentence')

最佳答案

当您使用 readlines() 读取文件时,生成的列表元素确实有尾随换行符。这些可能是您的匹配项少于预期的原因。

代替写作

for x in list:

for x in (s.strip() for s in list):

这会从 list 中的字符串中删除前导和尾随空格。因此,它会从字符串中删除尾随的换行符。

为了巩固你的程序,你可以这样做:

with open('c:/tmp/textfile.TXT') as f:
haystack = f.read()

if not haystack:
sys.exit("Could not read haystack data :-(")

with open('c:/tmp/list.txt') as f:
for needle in (line.strip() for line in f):
if needle in haystack:
print(needle, ',one_sentence')
else:
print(needle, ',another_sentence')

我不想做太大的改变。最重要的区别是我在这里通过 with 语句使用上下文管理器。它确保为您正确处理文件(主要是关闭)。此外,使用生成器表达式动态剥离“针”线。上述方法是逐行读取和处理针文件,而不是一次将整个文件加载到内存中。当然,这只对大文件有影响。

关于python - 从另一个文本文件中搜索一个文件中列出的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12370342/

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