我很新的蟒蛇,我在Groovy是我用""""
写一些文本文件,我希望的方式。是否有蟒蛇任何等同于常规“””?
是否有任何在python相当于办法?
注意,我希望创建一个拥有超过20行的文件,所以我需要一些简单而优雅的方式。提前
感谢。
我很新的蟒蛇,我在Groovy是我用""""
写一些文本文件,我希望的方式。是否有蟒蛇任何等同于常规“””?
是否有任何在python相当于办法?
注意,我希望创建一个拥有超过20行的文件,所以我需要一些简单而优雅的方式。提前
感谢。
目前尚不清楚究竟你问什么。
Groovy中多行字符串的使用'''
或"""
的能力是直接从Python借用的,所以当然你可以在Python中做同样的事情。
但是,在Groovy中插入字符串使用"
或"""
的能力是从sh借用的,Python没有相同的功能。在Python中,'
和"
字符串是相同的,并且都不插入。
Python的替代选择是format
。这是对str
和unicode
类,您可以用这样的方法:
s = """This is a string with a {variable} to fill in.
Here's a {second} one
""".format(variable="field", second="'nother")
如果你写了一个文件,你会得到这样的:
This is a string with a field to fill in.
Here's a 'nother one
有很多变化。如果您想按位置而不是名称传递参数,则可以使用{0}
而不是{variable}
- 或者,对于按顺序插入的简单情况,只需使用{}
(但要注意i18n)。您还可以将格式化信息放入(例如)打印repr
(您可以键入以获取此值的种类),而不是str
(可读的表示形式)。有关详细信息,请阅读上面链接的文档。
Python中也有一个较旧的机制,正在逐渐被淘汰,使用了%
operator以及基于格式规范,但与C风格printf
相当不同。例如:
s = """This is a string with a %(variable)s to fill in.
Here's a %(second)s one
""" % {"variable": "field", "second": "'nother"}
此外,还有很多可用的变化;再次阅读上面链接的文档以获取详细信息。但是,实际上,如果您要处理大量旧代码,或者想从printf
或Windows风格或类似格式进行转换,或者需要在Python 2.5或更低版本上运行,那么您只需要使用它。
如果这些都不足以满足您的需求,那么PyPI(以及ActiveState等的配方)上就有69,105个模块用于完成从接近perl-as-possible插值到模板化HTML页面的所有操作。
感谢您的干净解释:) – sriram
f = open(name_of_file, 'w')
f.writelines(list_of_lines_to_write)
f.close()
Ø r代替writelines()
,使用f.write("""text_to_write_to_file""")
'writelines'有点误导,因为它实际上不会写EOL ......(尽管一般来说,我同意“行”的列表通常比多行字符串更可读/可读) –
Python支持"""
用于转义多行字符串。然而,变量替换不是立即可用的。
multi_line_variable = """This
Is
The
Coolest
Ever."""
如果您需要变量替换,你可以使用Python printf
格式支持或使用模板库像神社或者Django的模板语言。
Python中的printf'格式:
>>> echo """Massive %s!""".format("string")
"Massive string!"
首先,最好使用现代['format'](http://docs.python.org/2/library/string.html#formatstrings)方法,而不是旧式['%'运算符](http ://docs.python.org/2/library/stdtypes.html#string-formatting)其次,正如所写,答案听起来像是在暗示一个名为'printf'的函数,它不存在,而不是' %'操作符,并且将它称为“printf'格式支持”有点误导,因为它与'printf'有很大不同,导致混淆。 – abarnert
Groovy的多行字符串的三引语实际上是从Python中借用的,所以如果这就是你要找的所有东西,那就完成了。如果你想要''''插值(它适用于Groovy中的''''和'“”“'),这是从sh借用的,而Python不会这么做,所以你需要使用其中一种选择。你以后? – abarnert