python TypeError 格式字符串的参数不足

标签 python regex sed fabric

尝试用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

有什么想法吗?非常感谢!

最佳答案

错误告诉您问题所在:您的字符串中有两个 %s 占位符,但只有一个值。我假设您想在两个地方使用相同的值。在这种情况下:

run('sed -i s/jahil/%s/g /etc/nginx/sites-enabled/%s' % (account, account))

或者,等效地,使用字典,以便我们可以使用命名占位符:

run('sed -i s/jahil/%(a)s/g /etc/nginx/sites-enabled/%(a)s' % {"a": account})

完全用 Python 进行这种字符串替换非常容易;您可能会考虑这样做,而不是掏空。

关于python TypeError 格式字符串的参数不足,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11397571/

相关文章:

python - 如何将django模型保存在数据库中以供用户自定义 View ?

python - 评估 Pandas DataFrame 中的 bool 表达式

python - python函数的多个输入

javascript - 简单的正则表达式模式,提取数字

ubuntu - Sed 无法识别带有双引号的正则表达式

python - 两个数字相加

javascript - javascript中的正则表达式如何查找两个 "special"字符之间的内容?

php - 匹配行尾不起作用

shell - 具有多个条件的 sed

linux - 如何用 awk/sed 替换字符串的第二个实例