什么是Python中的替换函数

时间:2010-06-17 18:18:11

标签: python file-io replace

我想编写一个打开文本文件的python代码,并替换为我要发送给它的单词。 你能举个例子吗? 谢谢 。

5 个答案:

答案 0 :(得分:2)

感到惊讶的是MarteliBot还没有回复:-)(我在其他一些帖子中从他那里了解到fileinput) - 所以赶紧行动,你可以做到以下几点:

import fileinput
for line in fileinput.input('somefile.txt', inplace=1):
    print line.replace('OldWord', 'NewWord'),

PS。这实际上是以安全的方式将stdout重定向到同一个文件(即写入tempfile并稍后重命名等)。不是很漂亮吗?

答案 1 :(得分:1)

有很多方法可以做到这一点,但请务必查看Template Strings,看看它们是否适合您的应用。

来自文档:

>>> from string import Template
>>> s = Template('$who likes $what')
>>> s.substitute(who='tim', what='kung pao')
'tim likes kung pao'
>>> d = dict(who='tim')
>>> Template('Give $who $100').substitute(d)
Traceback (most recent call last):
[...]
ValueError: Invalid placeholder in string: line 1, col 10
>>> Template('$who likes $what').substitute(d)
Traceback (most recent call last):
[...]
KeyError: 'what'
>>> Template('$who likes $what').safe_substitute(d)
'tim likes $what'

答案 2 :(得分:0)

可以这么简单:

data = open('input_file').read()
open('output_file', 'w').write(data.replace('old_word', 'new_word'))

清洁版:

fh = open('input_file')
data = fh.read()
fh.close()

data = data.replace('old_word', 'new_word')

fh = open('output_file', 'w')
fh.write(data)
fh.close()

答案 3 :(得分:0)

你可以使用with-statement

这样做
PATH = "/home/Eva/test.txt"

with open(PATH) as f: # read the file content
    content = f.read()

with open(PATH, "w+") as f: # w+ stands for (re)write
    content = content.replace("abc", "test")
    f.write(content)

abc 文字,测试 文字,将取代旧文字

您可以阅读有关文件here的更多信息。我希望能帮助你。

答案 4 :(得分:0)

sed s/oldword/newword/g originalfile.txt > fixedfile.txt

: - )