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

时间:2019-09-28 11:59:28

标签: python python-3.x file-manipulation

我正在尝试以html显示我的python文件,因此,每次文件跳转到换行符时,我都想替换为
,但是我编写的程序无法正常工作。

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


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

我希望每次换行时都显示文件,但代码不会更改文件。

5 个答案:

答案 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)

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

  1. contents.replace("\n", "<br>")将返回一个新对象,该对象将\n替换为<br>,因此您可以使用html_contents = contents.replace("\n", "<br>")print(html_contents)
  2. 使用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