我正在尝试替换文本文件中的特定单词。我有一个文本文件(test.txt
)文件的内容如下:
red red blue
green red blue
red
我希望用大写字母替换RED的每个实例。
到目前为止,我的编码是:
print "What file would you like to read?",
filename = raw_input()
txt = open(filename)
print txt.read()
import re
x=len(re.findall('red', open(filename).read()))
print "The total number of the word 'red' is: %r" % x
我真的不知道如何更换单词而且我确定我目前只计算单词的尝试是不好的。我将不胜感激任何帮助。
答案 0 :(得分:1)
如果要替换文件中的内容,可以试试这个
content = []
filename='foo.txt'
with open(filename, 'r') as read_file:
content = read_file.readlines()
with open(filename, 'w') as write_file:
for line in content:
write_file.write(line.replace("red", "RED"))
答案 1 :(得分:0)
对于这类问题fileinput是正确的地方
import fileinput
import sys
count = 0
for line in fileinput.input(["a.txt"], inplace=True, backup='.bak'):
if 'red' in line:
no_of_red=line.count('red')
sys.stdout.write(line.replace('red','RED'))
count += no_of_red
else:
sys.stdout.write(line)
print "The total number of the word 'red' is: %r" % count
答案 2 :(得分:0)
为避免替换red
中未隔离的redness
实例,请使用正则表达式
import re
pattern = re.compile(r'\bred\b')
print "What file would you like to read?",
filename = raw_input()
with open(filename, 'r') as f:
content = f.read()
replaced_content, count = pattern.subn('RED', content)
例如,对于包含
的文件the red redirect link
输出是:
replaced_content
>>> 'the RED redirect link'
count
>>> 1