如何制作一个用字符串替换 python 文件中的换行符的程序
How to make a program that replaces newlines in python file with a string
我正在尝试在 html 中显示我的 python 文件,因此每次文件跳转到换行符时我都想用 < br> 替换,但我编写的程序是不工作。
我看过这里并尝试稍微更改代码我得到了不同的结果,但不是我需要的结果。
with open(path, "r+") as file:
contents = file.read()
contents.replace("\n", "<br>")
print(contents)
file.close()
我希望每次换行时都显示文件,但代码不会对文件进行任何更改。
试试这个:
import re
with open(path, "r") as f:
contents = f.read()
contents = re.sub("\n", "<br>", contents)
print(contents)
您的代码从文件中读取,将内容保存到变量并替换换行符。但是结果没有保存在任何地方。要将结果写入文件,您必须打开文件进行写入。
with open(path, "r+") as file:
contents = file.read()
contents = contents.replace("\n", "<br>")
with open(path, "w+") as file:
contents = file.write(contents)
借自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
此代码段中存在一些问题。
contents.replace("\n", "<br>")
将 return 一个用 <br>
替换 \n
的新对象,因此您可以使用 html_contents = contents.replace("\n", "<br>")
和 print(html_contents)
- 当您使用
with
时,文件描述符将在离开缩进块后关闭。
这是一个有效的示例程序:
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
方法没有修改原始字符串;它 returns 一个新字符串。
另外,您需要将新字符串写入文件; python 不会自动完成。
希望这对您有所帮助:)
P.S。 with
语句自动关闭文件流。
我正在尝试在 html 中显示我的 python 文件,因此每次文件跳转到换行符时我都想用 < br> 替换,但我编写的程序是不工作。
我看过这里并尝试稍微更改代码我得到了不同的结果,但不是我需要的结果。
with open(path, "r+") as file:
contents = file.read()
contents.replace("\n", "<br>")
print(contents)
file.close()
我希望每次换行时都显示文件,但代码不会对文件进行任何更改。
试试这个:
import re
with open(path, "r") as f:
contents = f.read()
contents = re.sub("\n", "<br>", contents)
print(contents)
您的代码从文件中读取,将内容保存到变量并替换换行符。但是结果没有保存在任何地方。要将结果写入文件,您必须打开文件进行写入。
with open(path, "r+") as file:
contents = file.read()
contents = contents.replace("\n", "<br>")
with open(path, "w+") as file:
contents = file.write(contents)
借自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
此代码段中存在一些问题。
contents.replace("\n", "<br>")
将 return 一个用<br>
替换\n
的新对象,因此您可以使用html_contents = contents.replace("\n", "<br>")
和print(html_contents)
- 当您使用
with
时,文件描述符将在离开缩进块后关闭。
这是一个有效的示例程序:
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
方法没有修改原始字符串;它 returns 一个新字符串。
另外,您需要将新字符串写入文件; python 不会自动完成。
希望这对您有所帮助:)
P.S。 with
语句自动关闭文件流。