从文件中删除数字

nis*_*ish 3 python

我有一个表格的文件:

car1 auto1 automobile1 machine4 motorcar1
bridge1 span5
road1 route2
Run Code Online (Sandbox Code Playgroud)

但我想删除整数,以便我的文件看起来像:

car auto automobile machine motorcar
bridge span
road route
Run Code Online (Sandbox Code Playgroud)

我试图逐个字符地读取文件,如果字符是数字,请跳过它.但是我将它们打印在一个新文件中.如何在输入文件中进行更改?

Mat*_*ves 9

使用正则表达式:

import re
import fileinput

for line in fileinput.input("your_file.txt", inplace=True):
    print re.sub("\d+", "", line),
Run Code Online (Sandbox Code Playgroud)

注意:fileinput是一个处理文件的好模块.

编辑:为了更好的性能/更少的灵活性,您可以使用:

import fileinput
import string

for line in fileinput.input("your_file.txt", inplace=True):
    print line.translate(None, string.digits),
Run Code Online (Sandbox Code Playgroud)

对于多个编辑/替换:

import fileinput
import re

for line in fileinput.input("your_file.txt", inplace=True):
    #remove digits
    result = ''.join(i for i in line if not i.isdigit())
    #remove dollar signs
    result = result.replace("$","")
    #some other regex, removes all y's
    result = re.sub("[Yy]+", "", result)
    print result,
Run Code Online (Sandbox Code Playgroud)