在python中是否有任何等效的groovy"""?

sri*_*ram 0 python file

我是python的新手.我来自groovy,我习惯用""""我希望的方式将一些文本写入文件.

在python中有没有相同的方法?

请注意,我想创建一个超过20行的文件.所以我需要一些简单而优雅的方式.

提前致谢.

aba*_*ert 6

目前尚不清楚你究竟在问什么.

在Groovy中使用'''"""用于多行字符串的能力是直接从Python借用的,所以当然你可以在Python中做同样的事情.

但是,在Groovy中使用""""插入字符串的能力是从sh借用的,而Python没有相同的功能.在Python,'"字符串是相同的,而且也不插值.

惯用的Python替代品是format.这是strunicode类的方法,你可以这样使用:

s = """This is a string with a {variable} to fill in.
Here's a {second} one
""".format(variable="field", second="'nother")
Run Code Online (Sandbox Code Playgroud)

如果你把它写到一个文件,你会得到这个:

This is a string with a field to fill in.
Here's a 'nother one
Run Code Online (Sandbox Code Playgroud)

有很多变化.如果你想按位置而不是名字传递参数,你可以使用{0}而不是{variable}-or,对于按顺序插入它们的简单情况,只需使用{}(但要注意i18n).您还可以将格式信息放入,例如,打印repr(类似"您要输入的内容以获取此值")而不是str(人类可读的表示).阅读上面链接的文档了解详细信息.

Python也有一个较旧的机制,它正在逐步淘汰,它使用%运算符和基于格式规范,但与C风格完全不同printf.例如:

s = """This is a string with a %(variable)s to fill in.
Here's a %(second)s one
""" % {"variable": "field", "second": "'nother"}
Run Code Online (Sandbox Code Playgroud)

同样,有很多变化可供选择; 再次阅读上面链接的文档以获取详细信息.不过说真的,你只需要使用这个,如果你正在处理大量的旧代码,或翻译printf或Windows风格或类似格式,或需要在Python的2.5或更早版本上运行.

如果这对你来说都不够,那么PyPI上有69,105个模块(以及ActiveState 上的配方等),可以完成从as-close-to-perl-as-possible插值到模板化HTML页面的所有操作.