我如何在Python中指明字符串中的换行符,以便我可以将多行写入文本文件?


当前回答

与平台无关的断行符:Linux、Windows和iOS

import os
keyword = 'physical'+ os.linesep + 'distancing'
print(keyword)

输出:

physical
distancing

其他回答

'\n'也是一样,不过你可能不需要'\r'。在Java版本中使用它的原因是什么?如果你确实需要/想要它,你也可以在Python中以同样的方式使用它。

简单的解决方案

如果只调用print而不带任何参数,它将输出一个空行。

print

你可以像这样将输出管道到一个文件中(考虑到你的例子):

f = open('out.txt', 'w')
print 'First line' >> f
print >> f
print 'Second line' >> f
f.close()

它不仅与操作系统无关(甚至不需要使用操作系统包),而且比将\n放在字符串中更具可读性。

解释

print()函数有一个可选的关键字参数,用于字符串的结尾,称为end,默认为操作系统的换行符,例如。\ n。所以,当你调用print('hello')时,Python实际上打印的是'hello' + '\n'。这意味着当你只调用print而不带任何参数时,它实际上打印的是" + '\n',结果是换行符。

替代

使用多行字符串。

s = """First line
    Second line
    Third line"""
f = open('out.txt', 'w')
print s >> f
f.close()

这里有一个更易读的解决方案,即使你不在顶级缩进(例如,在函数定义中),它也能正确工作。

import textwrap
file.write(textwrap.dedent("""
    Life's but a walking shadow, a poor player
    That struts and frets his hour upon the stage
    And then is heard no more: it is a tale
    Told by an idiot, full of sound and fury,
    Signifying nothing.
"""))

Use:

"{}\n{}\n{}".format(
    "line1",
    "line2",
    "line3"
)

我个人更喜欢这种形式。

新的行字符是\n。它用于字符串内部。

例子:

    print('First line \n Second line') 

其中\n是换行符。

这将产生如下结果:

First line
 Second line

如果使用Python 2,则不对打印函数使用圆括号。