我有一个文本文件,其中存储了此信息
01
我编写了一个简单的代码来解释数字,但它不起作用
with open('test.txt', 'r') as file:
data = file.readlines()
if data[0] == '00':
name = 'test0'
if data[0] == '01':
name = 'test1'
if data[0] == '02':
name = 'test2'
else:
name = 'ERROR'
print(name)
每当我运行此代码时,它都会打印 ERROR,但如果我打印 data[0],它会打印 01。
我做错了什么?
最佳答案
问题出在您的 if 语句上。这是您的代码应使用的正确格式:
with open(r'C:\Users\edekio\Documents\test.txt', 'r') as file:
data = file.readlines()
if data[0].strip() == '00':
name = 'test0'
elif data[0].strip() == '01':
name = 'test1'
elif data[0].strip() == '02':
name = 'test2'
else:
name = 'ERROR'
print(name)
输出
test1
通过使用多个 if 语句,您的代码将检查所有 情况是否为 TRUE 情况,并执行下一行中的代码。因此,在第二个 if 语句中进行匹配后,它将再次检查第三个 if 语句并查看它是否为真。由于它不成立,if 将执行 else 子句。
通过使用 elif 而不是多个 if 语句,您的代码将执行返回 TRUE 语句的行,并且不检查其他条件语句。
我添加了 strip()将线条作为良好的做法。很多时候,您不知道在搜索精确的字符串匹配时是否有前导字符会伪造您的条件。 strip()确保您永远不必担心。
关于python - 如何检查文本文件中存储的数据是否符合特定条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54795954/