从文件的每一行中删除数字
我想写一段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)