gpt4 book ai didi

python - 在 Python 中就地替换文件中的文本

转载 作者:太空宇宙 更新时间:2023-11-04 03:09:17 25 4
gpt4 key购买 nike

我正在使用以下代码在编辑后使用 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_fileoutput_file


2) 此外,它不只是替换文本,而是打印出整行。

这是因为你正在使用:

file.write( line.replace('Original', 'Replacement'))

免费代码:

我已经分成 2 个文件,一个输入文件和一个输出文件。

首先,它会打开 ifile 并将所有行保存在名为 lines 的列表中。

其次,它会读取所有这些行,如果存在 'Original',它会替换它。

替换后,会保存到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()未经编辑的文件:


更多信息: Tutorials Point: Python Files I/O

关于python - 在 Python 中就地替换文件中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38595400/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com