我是python的新手.我来自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")
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页面的所有操作.