首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.format中的Python - .format

.format中的Python - .format
EN

Stack Overflow用户
提问于 2017-06-19 21:27:52
回答 2查看 78关注 0票数 0

我真的很喜欢使用.format来调用命令,并且不重复我的话。我有这个功能

代码语言:javascript
复制
def function_1(command):
    subprocess.call(['{0} ; {1} ; {2}; {3}'.format(var_0, var_1, var_2, command)])

然后在另一个函数中

代码语言:javascript
复制
def function_2()
    function_1('command {0} {2}')

我想通过简单地调用第一个函数中定义的变量来使用它们,就像我在第一个函数中一样。我不想重复在这两个函数中都有一个.format。

如果该字符串在第二个函数中为'{0}‘,为什么编译器不将其提取并将其视为与第一个函数中的'{0}’相同。当你通过参数传递{ }时,它不会拾取它吗?

有没有一种简单的方法呢?毕竟我想要这样的东西:

代码语言:javascript
复制
subprocess.call(['{0}; {1}; {2}; command {0} {2}'.format(var_0, var_1, var_2)])

这暂时不起作用。它打印这个..。

代码语言:javascript
复制
{0} {2} 
EN

回答 2

Stack Overflow用户

发布于 2017-06-19 21:36:21

使用command连接上一个字符串。您不需要为command中保存的新占位符设置格式

代码语言:javascript
复制
def function_1(command):
    s = '{0} ; {1} ; {2}; ' + command
    subprocess.call([s.format(var_0, var_1, var_2)])

command中的占位符现在用于以下行中完成的格式设置。

为了使command的定位更加灵活,您可以将大括号对起来,并应用预先格式化的步骤。

代码语言:javascript
复制
def function_1(command):
    s = '{{0}} ; {{1}} ; {{2}}; {0}'.format(command)
    subprocess.call([s.format(var_0, var_1, var_2)])

演示:

代码语言:javascript
复制
>>> '{{0}} {0}'.format('command {0} {2}')
'{0} command {0} {2}'
票数 1
EN

Stack Overflow用户

发布于 2017-06-19 21:34:50

希望这就是你所期待的。

代码语言:javascript
复制
 subprocess.call(['{var0}; {var1}; {var2}; command {var0} {var2}'.format(var0=var_0, var1=var_1, var2=var_2)])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44631908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档