【发布时间】:2012-07-09 00:00:20
【问题描述】:
尝试使用 python 结构更新文件
run('sed -i s/jahil/%s/g /etc/nginx/sites-enabled/%s' % (account))
或
run('sed -i "s/jahil/%s/g" /etc/nginx/sites-enabled/%s' % (account))
错误:
TypeError: not enough arguments for format string
有什么想法吗?非常感谢!
【问题讨论】:
-
请注意,
%已过时。如果可以,请将代码更新为字符串对象的.format()方法。 -
@SimeonVisser 实际上,当 v3 发布时,虽然有人谈论要摆脱
%-formatting,但我后来了解到,%-formatting暂时会继续存在。 -
@Levon:在 PEP 中提到过吗?我知道他们在 Unicode 文字前面重新引入了“u”,以使移植更容易。
-
@SimeonVisser 查看此答案底部的注释stackoverflow.com/a/11099798/1209279,它与 Python 3.2 发行说明有关。在那之前,我还认为
%-formatting 在不久的将来会被淘汰 -
@Levon:谢谢,我不知道,我以为它很快就会被删除。简短的结论是
%不会很快被删除,但建议将.format()用于新代码(基于docs.python.org/py3k/library/…)