gpt4 book ai didi

python - 在字符串中调用 python 参数

转载 作者:行者123 更新时间:2023-12-01 05:02:02 25 4
gpt4 key购买 nike

我想在字符串中调用 python 参数。那可能吗?假设我已将变量 mypath 声明为

mypath = os.path.abspath('1.jpg')

我需要在另一个字符串变量中调用它,如下所示

cmd0 = 'gimp-console-2.8 -b -idf --batch-interpreter python-fu-eval -b "import sys,os;sys.path=[\'.\']+sys.path;import mycode;'
cmd1 = 'mycode.doit('THIS VARIABLE MYPATH SHOULD GO HERE')"'
cmd2 = '-b "pdb.gimp_quit(0)"'
cmdfinal = cmd0 + cmd1 + cmd2
os.system(cmdfinal)

最佳答案

看起来您想要做的是将变量插入字符串的中间。

这是通过字符串格式化完成的。 Python 有几种不同的方法,但最简单的是 str.format 方法,如教程部分 Fancier Output Formatting 中所述:

cmd1 = 'mycode.doit({0})'.format(mypath)

如果 mypath 是字符串 /Users/me/Documents/1.jpg ,那么 cmd1 将是字符串 mycode.doit(/Users/me/Documents/1.jpg)

但这不太正确,因为您正在尝试格式化可以由另一个 Python 解释器运行的命令。因此,您不仅需要字符串的内容,还需要字符串的 Python 文字。你是怎么做到的?

字符串的 repr 是引号中的字符串,经过适当的转义以确保它可以直接在Python代码中使用。 (并非所有对象都如此;例如,有些对象会返回类似 <Spam object at 0x12345678> 的内容,这并不是特别有用;通常仅对于将输出输入 Python 代码有意义的对象才有效,并为您提供完全相同的结果对象。)

那么,你是如何得到它的呢?如 Format String Syntax 中所述,您使用 r 转换说明符:

cmd1 = 'mycode.doit({0!r})'.format(mypath)

现在,cmd 将是字符串 mycode.doit('/Users/me/Documents/1.jpg')

这正是您想要的。

关于python - 在字符串中调用 python 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25880777/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com