如何用python替换txt文件中的文本?

时间:2013-12-28 23:18:11

标签: python-2.7 replace document

我尝试使用.py脚本替换.txt文件中的文本。这是我到目前为止所拥有的:

docname=raw_input("Enter a document name: ")    
fo=open(docname, 'r+')    
string=fo.read()    
replace=raw_input("Enter what you want to replace: ")    
replacewith=raw_input("Enter what you want to replace it with: ")    
out=string.replace(replace,replacewith)    
fo.write(out);    
fo.close()    
print "Check the document!"    
closeInput = raw_input("Press ENTER to exit")

我有一个名为" test.txt"的txt文件。 (与.py脚本位于同一目录中)。当我输入" test.txt"时,它会按预期询问我要替换的内容。当我填写它时,它会询问我想要替换它的内容。

我填写了,程序结束了。没有"Check the document!"或其他任何东西。最糟糕的是,它并没有用第二个字符串代替它。

请帮忙!

1 个答案:

答案 0 :(得分:1)

你有两种可能性:

  1. 如果您只想打开一次文件,则应重置 使用fo.seek(0)
  2. 的流的位置
  3. 您可以使用fo = open(docname, 'w')
  4. 关闭并重新打开该文件

    第一个选项有一个问题:如果替换文本比原始文本短,则一些文本将留在最后。 为了说明我在说什么: 你有文本'12345'并想要用'a'替换'12',然后生成的文件会 包含'a3455'