python - 如何检查文本文件中存储的数据是否符合特定条件?

标签 python python-3.x

我有一个文本文件,其中存储了此信息

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/

相关文章:

python - 如何解析json数据并将其加载到django模板中

python - 如何在导入 python 模块时排除对象

python - 如何解析文件?

python - 不同的除法结果python

python-3.x - 线程和异步: Task was destroyed but it is pending

python - 我需要 sqlite3 的提示

python - 应用引擎 : Is there a good general-purpose tool for caching datastore objects?

python - 更简单的 Python 并发构建 block ?

python float格式怪异?

python-3.x - PyQt5 stub 文件