gpt4 book ai didi

python - 一个字符串上的列表理解窃听似乎不是 '' 或 "\r\n"

转载 作者:太空宇宙 更新时间:2023-11-04 08:17:29 24 4
gpt4 key购买 nike

我读取了一个文件,其中包含一个数字列表(这是我稍后需要的一些标识符)。

如果我的文件末尾有一个空行,则我的以下代码存在错误:

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" 不足以处理这种情况。

我做错了什么?

(如果我抑制文件的最后一个空行,一切都很好,也就是说,如果我让文件的最后一行包含真正的数字)

最佳答案

试试这个:

return [ int(line) for line in lines if line.strip() ]

这将从 line去除所有空格和换行符,如果它不为空(即它包含一些字符,最好是数字),它将把它转换成 int

但是,如果您的文件包含数字以外的其他字符或数字之间包含空格,它将失败(并引发 ValueError)。

关于python - 一个字符串上的列表理解窃听似乎不是 '' 或 "\r\n",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11684951/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com