如何检查传递给 subprocess.Popen 进程处理程序的实际参数列表?
How to check actual list of arguments being passed to subprocess.Popen process handler?
我正在使用 Python 并使用 subprocess.Popen
调用系统调用。我正在传递相当长的字符串,即 subprocess.Popen
参数下的 self.description
值,如下所示。
firstProcess = subprocess.Popen(["echo",self.description], stdout=subprocess.PIPE)
但是,我收到此错误消息:Argument list too long
File "/usr/lib/python3.5/subprocess.py", line 1551, in _execute_child
raise child_exception_type(errno_num, err_msg)
OSError: [Errno 7] Argument list too long
根据 'self.description'
字符串的内容,上述代码有时有效,有时无效。
我如何通过强制 subprocess.Popen
将 self.description
视为一个字符串来使上述代码工作,或者我如何打印实际传递给 [=20 的参数值列表=] 方法,因为它看起来像 self.description
被拆分成多个参数并传递给 subprocess.Popen
方法?
我认为您可以使用 shlex.quote() 函数来正确引用 self.description
参数,以便将其作为参数传递。
请注意,您最好将数据通过管道传输到另一个进程,因为数据太多了。
我正在使用 Python 并使用 subprocess.Popen
调用系统调用。我正在传递相当长的字符串,即 subprocess.Popen
参数下的 self.description
值,如下所示。
firstProcess = subprocess.Popen(["echo",self.description], stdout=subprocess.PIPE)
但是,我收到此错误消息:Argument list too long
File "/usr/lib/python3.5/subprocess.py", line 1551, in _execute_child
raise child_exception_type(errno_num, err_msg)
OSError: [Errno 7] Argument list too long
根据 'self.description'
字符串的内容,上述代码有时有效,有时无效。
我如何通过强制 subprocess.Popen
将 self.description
视为一个字符串来使上述代码工作,或者我如何打印实际传递给 [=20 的参数值列表=] 方法,因为它看起来像 self.description
被拆分成多个参数并传递给 subprocess.Popen
方法?
我认为您可以使用 shlex.quote() 函数来正确引用 self.description
参数,以便将其作为参数传递。
请注意,您最好将数据通过管道传输到另一个进程,因为数据太多了。