我读了一个文件,其中包含一个数字列表(这是我以后需要的一些标识符)。
如果我的文件末尾有一个空行,我在以下代码中有一个错误:
return [ int(x) for x in lines if not x == '' and not x == "\r\n"]
使用以下 python 输出:
[...]
File "Z:\Projects\PyIntegrate\perforceIntegration.py", line 453, in readChange
ListNumbers
self.changeListNumbers = loadChangeListNumbers()
File "Z:\Projects\PyIntegrate\perforceIntegration.py", line 88, in loadChangeL
istNumbers
return [ int(x) for x in lines if not x == '' and not x == "\r\n"]
ValueError: invalid literal for int() with base 10: ''
显然我的测试if not x == '' and not x == "\r\n"
不足以处理这种情况。
我做错了什么?
(如果我取消文件的最后一个空行,即如果我让文件的最后一行包含真正的数字,一切都很好)