Python读取文本文件内容与变量字符串比较始终返回False问题
问题解决说明
核心根因
strip()方法使用错误:str.strip("")传入空字符串参数时不会移除任何首尾字符,你从文件读取的行末尾自带换行符\n或其他不可见空白字符,没有被清理,是相等判断失败的直接原因。- 额外逻辑问题:
for line in f遍历完所有行后,line变量只会保留文件最后一行的内容,如果你需要比对文件内所有行,现有循环逻辑不符合要求。
修复方案
strip()不传入任何参数时,才会自动清除首尾所有空白字符,包含空格、换行符\n、回车符\r、制表符\t等不可见字符。
修复后代码示例
with open("Comparing_file") as f: target_letter = "A" # 逐行比对逻辑 for line in f: cleaned_line = line.strip() print("This is the cleaned line:", cleaned_line) print("This is the letter:", target_letter) if cleaned_line == target_letter: print("equal") else: print("not equal")
调试技巧
遇到字符串看起来一致但判断不等的情况,可以用repr()函数打印字符串的完整原始内容,直接看到隐藏的不可见字符:
print(repr(line)) # 会输出类似'A\n'的结果,可直接观察到末尾的换行符
内容的提问来源于stack exchange,提问作者Moaz_pr
相关产品推荐
相关产品推荐

