使用 tuples/lists 时使用子进程执行命令?
Executing commands with subprocess while using tuples/lists?
我正在尝试制作一个 terminal
,同时使用 Replit(基于 IDE 的协作浏览器)正在使用 Ubuntu 5.13.12
。但是,出于某种原因,子进程不接受 lists/tuples 到 运行 中。我尝试与 os.system
一起使用,但我意识到它只有 returns 一个值,如果它使用的是字符串。
上面显示的代码仅适用于 Linux 的发行版,例如 Ubuntu
、Fedora
、Debian
.
Python 简化终端
import termcolor;
import subprocess;
import os;
while (__name__ == '__main__'):
_DEPENDENT_PROCESS = []
_STRING_DIVISOR = " "
terminal_input = input(termcolor.colored(os.path.dirname(os.path.realpath(__file__)), "blue", attrs=['bold']) + "$ ")
if _STRING_DIVISOR in terminal_input:
counted_arguments = terminal_input.count(_STRING_DIVISOR)
splited_arguments = list(terminal_input.split(_STRING_DIVISOR, counted_arguments))
_DEPENDENT_PROCESS, error = splited_arguments, None
intrepeter = subprocess.run([_DEPENDENT_PROCESS], stdin=subprocess.PIPE, stdout=subprocess.PIPE)
_terminal_output = intrepeter.stdout
print(_terminal_output.decode('ascii'))
Error: Expected str, bytes, os.Paths, not lists
import termcolor;
import subprocess;
import os;
while (__name__ == '__main__'):
terminal_input = input(termcolor.colored(os.path.dirname(os.path.realpath(__file__)), "blue", attrs=['bold']) + "$ ")
intrepeter = subprocess.run(terminal_input.split(" "), stdin=subprocess.PIPE, stdout=subprocess.PIPE)
_terminal_output = intrepeter.stdout
print(_terminal_output.decode('ascii'),end="")
这样做有什么问题吗?它的工作方式就像终端对我来说一样。
虽然我知道它没有回答你的问题。
我正在尝试制作一个 terminal
,同时使用 Replit(基于 IDE 的协作浏览器)正在使用 Ubuntu 5.13.12
。但是,出于某种原因,子进程不接受 lists/tuples 到 运行 中。我尝试与 os.system
一起使用,但我意识到它只有 returns 一个值,如果它使用的是字符串。
上面显示的代码仅适用于 Linux 的发行版,例如 Ubuntu
、Fedora
、Debian
.
Python 简化终端
import termcolor;
import subprocess;
import os;
while (__name__ == '__main__'):
_DEPENDENT_PROCESS = []
_STRING_DIVISOR = " "
terminal_input = input(termcolor.colored(os.path.dirname(os.path.realpath(__file__)), "blue", attrs=['bold']) + "$ ")
if _STRING_DIVISOR in terminal_input:
counted_arguments = terminal_input.count(_STRING_DIVISOR)
splited_arguments = list(terminal_input.split(_STRING_DIVISOR, counted_arguments))
_DEPENDENT_PROCESS, error = splited_arguments, None
intrepeter = subprocess.run([_DEPENDENT_PROCESS], stdin=subprocess.PIPE, stdout=subprocess.PIPE)
_terminal_output = intrepeter.stdout
print(_terminal_output.decode('ascii'))
Error: Expected str, bytes, os.Paths, not lists
import termcolor;
import subprocess;
import os;
while (__name__ == '__main__'):
terminal_input = input(termcolor.colored(os.path.dirname(os.path.realpath(__file__)), "blue", attrs=['bold']) + "$ ")
intrepeter = subprocess.run(terminal_input.split(" "), stdin=subprocess.PIPE, stdout=subprocess.PIPE)
_terminal_output = intrepeter.stdout
print(_terminal_output.decode('ascii'),end="")
这样做有什么问题吗?它的工作方式就像终端对我来说一样。 虽然我知道它没有回答你的问题。