我正在创建一个python脚本(cmd_exec.py
)以打开另一个python脚本(entername.py
)。如何嵌套它,以便脚本输入字符串并自动执行回车按钮?试图记住有关enter的ASCII输入代码的问题,但找不到它。这样,当我在Powershell中运行cmd_exec.py
时,它将显示"Hello foo"
:
cmd_exec.py:
import subprocess, sys
p = subprocess.Popen(["powershell.exe", "py C:\\Users\\uname\\PProjects\\cmdauto\\entername.py"], stdout=sys.stdout)
p.communicate()
我希望在maname
脚本中插入entername.py
变量,并执行/按下Enter键的脚本。这样,当我运行cmd_exec.py
脚本时,我会看到它自己完成了所有工作并打印出"Hello foo"
entername.py:
maname = "foo"
person = input('Enter your name: ')
print('Hello', person)
答案 0 :(得分:0)
不确定这是否有帮助或是否对您有用,但是在Bash中,您可以使用'<'运算符指定输入。
例如,如果您有一个python文件program.py,而您的输入位于input.txt中,则可以运行
$ python3 program.py < input.txt
除非有其他限制,否则您可能要采用这种方法
答案 1 :(得分:0)
您可能正在寻找sys.argv和subprocess.getstatusoutput()
import subprocess
maname = "foo"
person = input('Enter your name: ')
print('Hello', person)
# not sure why powershell is here, normally would be only `python C:\\Users\\uname\\PProjects\\cmdauto\\entername.py {person}`
x = subprocess.getstatusoutput(f"powershell.exe 'py C:\\Users\\uname\\PProjects\\cmdauto\\entername.py {person}'")
print(x)
# (0, 'python f:\\entername.py')
# entername.py
import sys
person = int(sys.argv[1]) # get the 2nd item on `argv` list, the 1st is the script name