在Python中替换文件中的文本
问题内容:
编辑后,我正在使用以下代码通过FTP将文件上传到服务器上:
import fileinput
file = open('example.php','rb+')
for line in fileinput.input('example.php'):
if 'Original' in line :
file.write( line.replace('Original', 'Replacement'))
file.close()
有一件事情,代码没有在原位置替换文本,而是在末尾添加了替换的文本,而原位置的文本保持不变。
另外,它不仅打印出替换的文本,而且打印出整行。谁能告诉我如何解决这两个错误?
问题答案:
1) 代码在末尾添加了替换的文本,原始位置的文本保持不变。
您无法替换文件正文,因为您正在用+
信号打开它。这样,它将附加到文件末尾。
file = open('example.php','rb+')
但这仅在您想要 附加 到文档末尾时才有效。
要 绕过
此步骤,您可以使用seek()
导航到特定行并替换它。或创建2个文件:input_file
和和output_file
。
2) 此外,它不仅打印出替换的文本,而且打印出整行。
这是因为您正在使用:
file.write( line.replace('Original', 'Replacement'))
免费代码:
我已经分为两个文件,一个输入文件和一个输出文件。
首先,它将打开ifile
并将所有行保存在名为的列表中lines
。
其次,它将读取所有这些行,如果有的话'Original'
,它将被读取replace
。
更换后,它将保存到中ofile
。
ifile = 'example.php'
ofile = 'example_edited.php'
with open(ifile, 'rb') as f:
lines = f.readlines()
with open(ofile, 'wb') as g:
for line in lines:
if 'Original' in line:
g.write(line.replace('Original', 'Replacement'))
然后,如果需要,可以使用os.remove()
以下命令编辑未编辑的文件:
更多信息: 指导点:Python文件I /
O