搜索并替换文件中的数字

时间:2016-10-14 09:52:00

标签: python regex file search replace

我有一个包含数字和字母的文件,我想将所有数字替换为单词(例如,8转换为8)。好吧,我只是没有办法检查我的文件中是否有数字。这样做的最有效方法是什么?

4 个答案:

答案 0 :(得分:1)

这个问题也在这里得到了解答:replacing text in a file with Python

如果你想讨论内存用户和其他主题,这个问题应该可以解决问题:Search for string in txt file Python

有些人解释了从文件中读取文本的不同功能的不同用法,但在你的情况下,看起来它不是一个巨大的文件,所以第一个链接应该给你答案。

请记住,当你解析一个txt文件时,甚至" 8"是一个字符串。

答案 1 :(得分:1)

这只是为了找到文件中的数字,如果您不知道如何替换,请使用字典。

import re
text = open('text_numbers.txt')

for line in text:
    line = line.strip()
    y = re.findall('([0-9]+)',line)

答案 2 :(得分:1)

以下内容应该有效,它会读取输入文件,使用正则表达式查找所有数字,并使用num2words库替换每个文本:

push

import { push } from 'react-router-redux'; export default function redirect404() { return (dispatch) => { dispatch(replace('/404')); }; } 库可以使用以下方式安装:

import re
import num2words


with open('input.txt') as f_input:
    text = f_input.read()

text = re.sub(r"(\d+)", lambda x: num2words.num2words(int(x.group(0))), text)

with open('output.txt', 'w') as f_output:
    f_output.write(text)

答案 3 :(得分:0)

您可以使用正则表达式查找数字,然后使用num2words包将数字转换为单词。并简单地替换它们。

In [1]: from num2words import num2words
In [2]: num2words(54)
Out[2]: u'fifty-four'
In [3]: num2words(8)
Out[3]: u'eight'
相关问题