Python等效于在shell中写入文件

时间:2011-07-11 19:49:23

标签: python bash shell sh

有没有办法在shell脚本中写入文件,但是在python中写一些类似的东西:

cat >> document.txt <<EOF
Hello world 1
var=$var
Hello world 2
EOF

2 个答案:

答案 0 :(得分:2)

with open('document.txt', 'w') as fp:
    fp.write('''foo
{variable}
    '''.format(variable = 42))

虽然您可能希望为每一行拨打fp.write(或print)几次,或使用textwrap.dedent来避免空白问题,例如

with open('document.txt', 'w') as fp:
    print >>fp, 'foo' # in 3.x, print('foo', file = fp)
    print >>fp, variable

最好只阅读the tutorial

答案 1 :(得分:2)

如果我正确理解了这个问题,那么您指的是bash中的here document功能。我不认为Python中有直接的等价物,但您可以使用"""(三引号)输入多行字符串来分隔开头和结尾,例如。

>>> long_string = """First
... Second
... Third"""
>>> print long_string
First
Second
Third

然后您可以写入文件:

myFile = open("/tmp/testfile", "w")
myFile.write(long_string)
myFile.close()

并实现与bash示例完全相同的功能。