gpt4 book ai didi

python - 如何检查文本文件中的行是否等于特定字符串?

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

我正在尝试从文本文件中提取行,并将它们作为新字典的键。到目前为止,我已经这样做了:

file = open(FileName, 'r')
dictionary = {}
for line in file:
if line == ("Red" or "Yellow" or "Blue"):
dictionary[line] = '' # And then I'll edit this empty string later.
return dictionary
file.close()

我觉得“if line == ...”部分不正确,或者我没有正确读取文件?它不起作用。

有人可以在不给出直接答案的情况下为我指明正确的方向吗?感谢您阅读本文!我很感激。

最佳答案

你的感觉是对的。你看,Python 的 if 语句不像英语句子那样工作。 if 语句的第二部分:("Red"or "Yellow"or "Blue"),是一个 bool 表达式or 运算符接受两个值,并返回第一个为 true 的值。在这种情况下,由于 Python 中的任何非空字符串在 bool 术语中都被视为 true,因此您的 bool 表达式返回“Red”。这意味着您的 if 语句真正要表达的是:

if line == "Red":

您需要做的是针对每个值测试。虽然这可以通过遍历每个值并说:if line == "Red"or line == "Blue"... 来完成,但 Python 是一种更好的方法。使用 in 运算符,您可以创建一个可迭代对象,其中包含您要针对 line 进行测试的所有值。然后 Python 将测试 line 是否等于可迭代对象中的任何值。在您的情况下,使用元组会很好,但如果您需要针对更多值测试 line,则应改用 set():

if line in ("Red", "Yellow", "Blue"):
# do stuff

最后一点是 line 可以包含换行符。您可以使用 .strip() 删除换行符。所以你的最终解决方案是:

if line.strip('\n') in ("Red", "Yellow", "Blue"):
# do stuff

关于python - 如何检查文本文件中的行是否等于特定字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40871932/

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