下午好!
我有.txt一个包含以下行的文件:
8415778000|8415778099
我需要写下从第一个到第二个区间内的所有数字。我写了这个脚本。
f = open('pool.txt')
for line in f.readlines():
a, b = line.split('|', 1)
b = int(b.strip())
a = int(a.strip())
print (str(a))
while a <= b:
a += 1
print(str(a))
但是执行的时候会报错:
> Traceback (most recent call last):
File "*/1.py", line 5, in <module>
a = int(a.strip())
ValueError: invalid literal for int() with base 10: '\xef\xbb\xbf8415778000'
我不知道为什么,请帮忙。
encoding='utf_8_sig'在函数中应用参数open():因为您的文件以UTF-8 的 BOM(BOM - 字节顺序标记)编码,其中前 3 个字节始终相同(表示此编码)。
笔记:
代替
写得更好
因为 退出块后,
with文件将自动关闭(以及其他优点)。\xef\xbb\xbf是一个字节序列标记您可以尝试以下方法: