我如何在Python中指明字符串中的换行符,以便我可以将多行写入文本文件?
当前回答
新的行字符是\n。它用于字符串内部。
例子:
print('First line \n Second line')
其中\n是换行符。
这将产生如下结果:
First line
Second line
如果使用Python 2,则不对打印函数使用圆括号。
其他回答
在Python中,你可以只使用换行符,即\n
正如在其他回答中提到的:“新的行字符是\n。它在字符串中使用”。
我发现最简单易读的方法是使用“format”函数,使用nl作为新行名称,并将你想打印的字符串转换为你要打印的确切格式:
Python 2:
print("line1{nl}"
"line2{nl}"
"line3".format(nl="\n"))
Python 3:
nl = "\n"
print(f"line1{nl}"
f"line2{nl}"
f"line3")
这将输出:
line1
line2
line3
通过这种方式,它可以执行任务,并且还提供了代码的高可读性:)
'\n'也是一样,不过你可能不需要'\r'。在Java版本中使用它的原因是什么?如果你确实需要/想要它,你也可以在Python中以同样的方式使用它。
各种等效方法
使用打印
默认情况下,打印已经追加了换行符!
with open("out.txt", "w") as f:
print("First", file=f)
print("Second", file=f)
等同于:
with open("out.txt", "w") as f:
print("First\nSecond", file=f)
要打印而不自动添加换行符,使用sep=""(因为sep="\n"是默认值):
with open("out.txt", "w") as f:
print("First\nSecond\n", sep="", file=f)
使用f.write
对于以文本模式打开的文件:
with open("out.txt", "w") as f:
f.write("First\nSecond\n")
对于以二进制模式打开的文件,写入文件时不会自动将\n转换为特定于平台的行结束符。要强制使用当前平台的换行符,请使用os。Linesep代替\n:
with open("out.txt", "wb") as f:
f.write("First" + os.linesep)
f.write("Second" + os.linesep)
输出文件
视觉:
First
Second
在Linux上,换行符将以\n分隔:
First\nSecond\n
在Windows中,换行符将以\r\n分隔:
First\r\nSecond\r\n
为了避免以文本模式打开的文件自动将\n转换为\r\n,请使用open("out.txt", "w", newline="\n")打开文件。
Java字符串文字中的大多数转义字符在Python中也有效,例如“\r”和“\n”。