gpt4 book ai didi

python子进程给出类型错误

转载 作者:太空宇宙 更新时间:2023-11-04 06:08:47 27 4
gpt4 key购买 nike

我正在使用 python 2.7

cmd = "sudo start service/newservice db=temp"
p = subprocess.Popen(shlex.split(cmd), stderr=subprocess.STDOUT)

以上命令运行良好,并生成了预期的进程。

cmd = "sudo stop service/newservice db=temp"
p = subprocess.Popen(shlex.split(cmd), stderr=subprocess.STDOUT)

调用上面时在同一个文件中。它给出了错误。

traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/subprocess.py", line 672, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1213, in _execute_child
raise child_exception
TypeError: must be encoded string without NULL bytes, not str

最佳答案

我解决了。在将它传递给 shlex.split 之前,我只将 cmd 转换为 str,这非常好,尤其是当您以这种方式接收到一些输入时:

cmd = "sudo stop service/newservice db=" + db

更安全的做法是无论如何都将其转换为字符串。

关于python子进程给出类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20091700/

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