从文件的每一行中删除数字

-1 投票
2 回答
61 浏览
提问于 2025-04-12 21:15

我想写一段Python代码,读取一个文本文件中的每一行,同时从每行中提取出数字,并把这些数字存储到一个数组里。同时,还要把每行的内容存储到另一个数组中。

我一直在尝试修改以下代码:

while True:
    content=file.readline()
print (re.sub(pattern, '', content.file.readline())

但是没有成功(是的,我没有指定数组!但是如果这个循环不工作,那把内容添加到数组里又有什么意义呢?)

2 个回答

-1
while True:
    content=file.readline()
    numbah = ''
    for (i,c) in enumerate(content):
        if c in {'1','2','3',..}:
              numbah += c
              content = content[:i]+content[i+1:]
    print(numbah)
    print(content)

我还没测试过,但你可以试试这样做?

补充:逐个字符检查每一行。如果字符是数字,就把这个数字字符加到已经记住的数字字符里,并从当前行中删除。最后,你会得到一个变量,里面是由这一行中的数字组成的数字(numbah),而(content)则是去掉了数字后的那一行。

0

你可以逐行读取文件,然后用正则表达式来获取所有数字的列表,或者把这些数字去掉。

import re

with open('file.txt','r') as file:
    for line in file:
        numbers = re.findall(r'\d+',line)
        removed_numbers = re.sub(r'\d+','',line)
        
        print('numbers = ',numbers)
        print('removed numbers = ',removed_numbers)

撰写回答