我正在尝试以html显示我的python文件,因此,每次文件跳转到换行符时,我都想替换为
,但是我编写的程序无法正常工作。
我在这里查看过,并尝试更改代码,但得到的结果有所不同,但不是我需要的结果。
with open(path, "r+") as file:
contents = file.read()
contents.replace("\n", "<br>")
print(contents)
file.close()
我希望每次换行时都显示文件,但代码不会更改文件。
答案 0 :(得分:1)
这是一个有效的示例程序:
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不会自动执行。
希望这会有所帮助:)
P.S。 with
语句会自动关闭文件流。
答案 1 :(得分:0)
您的代码从文件读取,将内容保存到变量并替换换行符。但是结果不会保存在任何地方。要将结果写入文件,您必须打开文件进行写入。
with open(path, "r+") as file:
contents = file.read()
contents = contents.replace("\n", "<br>")
with open(path, "w+") as file:
contents = file.write(contents)
答案 2 :(得分:0)
此代码段中存在一些问题。
contents.replace("\n", "<br>")
将返回一个新对象,该对象将\n
替换为<br>
,因此您可以使用html_contents = contents.replace("\n", "<br>")
和print(html_contents)
with
时,文件描述符将在退出缩进块后关闭。答案 3 :(得分:-1)
尝试一下:
import re
with open(path, "r") as f:
contents = f.read()
contents = re.sub("\n", "<br>", contents)
print(contents)
答案 4 :(得分:-1)
从this post借来的:
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