Skip to main content
 首页 » 编程设计

python只读文件中的整数

2025年05月04日8duanxz

我想不出从这个文件中读取的方法,只有整数:

34 
-1 
2 48 
  +0 
++2 
+1 
 2.4 
1000 
-0 
three 
-1   

函数应该返回:

[34, -1, 0, 1, -1] 

如果一个数字有+或-是有效的。但是如果它有 ++ 或任何字母都没有。

如果它有一个空格(例如 2 48 )是无效的。

如果大于 999,则无效。

我只卡在这里:

my_list = [] 
with open('test.txt') as f: 
    lines = f.readlines() 
    for line in lines: 
        my_list.append(line.strip()) 

我试图将它变成一个字符串并使用 translate 来使用标点符号,但我不确定它是否会变得更复杂。

此外,我不确定是否使用正则表达式。我尝试了一个简单的正则表达式,但我没有使用它的经验。

请您参考如下方法:

您可以使用 int() 将字符串转换为整数。如果字符串不是整数,它将抛出 ValueError。所以试试这个:

my_list = [] 
with open('test.txt') as f: 
    for line in f: 
        try: 
            n = int(line) 
            if n > 999 or line.strip() == '-0': 
                #filtering numbers >999 and strings with '-0'  
                continue  
            my_list.append(n) 
        except ValueError: 
            pass 
 
print(my_list) 

输出:[34, -1, 0, 1, -1]