在脚本之间返回值时,值从元组更改为整数

时间:2016-12-10 19:36:54

标签: python integer subprocess tuples

当我从(r,g,b)返回script.py值到正在运行的python脚本时,值会从script.py中的元组类型更改为runningscript.py中的整数类型。为什么会这样,如何将runningscript.py中的整数更改为元组?我正在使用subprocess.call()将值返回到正在运行的脚本,并在Windows 10计算机上运行python 3.4。感谢。

来自运行脚本

color=subprocess.call('color_picker_v1.py',shell='True')
print(color)
color2=subprocess.call('color_picker_v1.py',shell='True')
print(color2)
new_im=ImageOps.colorize(im,color,color2)

返回整数类型错误

来自color_picker_v1.py的

(上面的script.py) 颜色从颜色字典中返回为元组

1 个答案:

答案 0 :(得分:0)

subprocess.call()返回表示子进程成功的单个整数/字节,而不是函数返回的对象(如元组)。 (见https://docs.python.org/3.5/library/subprocess.html#subprocess.call)。

您可能想要做的是import函数,而不是调用另一个脚本。请参阅示例https://en.wikibooks.org/wiki/Python_Programming/Modules#Making_a_program_usable_as_a_module

如果您确定要使用subprocess,则需要了解stdin。仅仅因为它在终端/屏幕上打印了一个值,并不代表程序返回的内容。