我想编写一个打开文本文件的python代码,并替换为我要发送给它的单词。 你能举个例子吗? 谢谢 。
答案 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
: - )