如何制作一个程序,用字符串替换 python 文件中的换行符



我正在尝试以 html 显示我的 python 文件,因此我想在每次文件跳转到换行符时都用 br 替换<>但我编写的程序不起作用。

我在这里查看并尝试更改代码,我得到了不同的结果,但不是我需要的结果。


with open(path, "r+") as file:
contents = file.read()
contents.replace("n", "<br>")
print(contents)
file.close()

我想让文件显示
每次我都有新行时,但代码不会对文件进行任何更改。

下面是一个工作的示例程序:

path = "example"
contents = ""
with open(path, "r") as file:
contents = file.read()
new_contents = contents.replace("n", "<br>")
with open(path, "w") as file:
file.write(new_contents)

程序不起作用,因为replace方法不会修改原始字符串;它会返回一个新字符串。 此外,您需要将新字符串写入文件;Python不会自动执行此操作。

希望这对:)有所帮助

附言:with语句会自动关闭文件流。

您的代码从文件中读取,将内容保存到变量并替换换行符。但是结果不会保存在任何地方。要将结果写入文件,您必须打开该文件进行写入。

with open(path, "r+") as file:
contents = file.read()
contents = contents.replace("n", "<br>")
with open(path, "w+") as file:
contents = file.write(contents)

此代码片段中存在一些问题。

  1. contents.replace("n", "<br>")将返回一个新对象,该对象将n替换为<br>,因此您可以使用html_contents = contents.replace("n", "<br>")print(html_contents)
  2. 使用with文件描述符将在离开缩进块后关闭。

试试这个:

import re
with open(path, "r") as f:
contents = f.read()
contents = re.sub("n", "<br>", contents)
print(contents)

借用这篇文章:

import tempfile
def modify_file(filename):
#Create temporary file read/write
t = tempfile.NamedTemporaryFile(mode="r+")
#Open input file read-only
i = open(filename, 'r')
#Copy input file to temporary file, modifying as we go
for line in i:
t.write(line.rstrip()+"n")
i.close() #Close input file
t.seek(0) #Rewind temporary file to beginning
o = open(filename, "w")  #Reopen input file writable
#Overwriting original file with temporary file contents          
for line in t:
o.write(line)  
t.close() #Close temporary file, will cause it to be deleted

相关内容

  • 没有找到相关文章

最新更新