使用Python子进程运行可执行文件时,可以在命令行的输入中重复输入for循环值吗?

问题描述 投票:0回答:0

我在 for 循环的子进程和命令行输入方面遇到一些问题。

我有一个由 matlab 编写的代码生成的可执行文件。

此可执行文件采用文件夹名称作为输入变量,并创建如下结果文件。

path = r'C:/Users/MyName/python_project/Exe_Running/Folder_A/'
exe_path = r'C:\Users\MyName\python_project\Exe_Running\Folder_A\MyExe.exe'

# all need files and exe file in path folder

# so I use subprocess like below

subprocess.Popen(exe_path, shell=True).communicate()
# or
subprocess.call(exe_path)
# both subprocess function takes me like below command line user input

MY Pycharm command line when run subprocess function

因此,我将路径('C:/Users/MyName/python_project/Exe_Running/Folder_A/')输入命令行

然后,它运行良好并制作了我想要的文件。

但是,当我使用像下面这样带有参数的子进程时

subprocess.Popen([exe_path, path], shell=True).communicate()
# or
subprocess.call([exe_path, path])

然后,它会出现错误“不支持将脚本作为函数运行。”

我不确定是因为它是用Matlab编写的文件还是其他原因。 exe文件是同事创建的可执行文件。

我必须多次运行exe文件,每次都必须输入不同的文件夹路径。

我想通过 for 循环重复此过程,并每次在命令行中输入不同的路径,如下所示。

folder_list = ['Folder_A', 'Folder_B', ..., 'Folder_Z']

for folder in folder_list:
   subprocess.Popen(exe_path, shell=True).communicate()
   # then, command line need user input
   # I want fill user input to use my "folder" value in for loop without directly typing
   

有没有办法在用户输入中放入 for 循环变量? (我的python版本是3.9)

感谢您的阅读。

真诚的。

我希望填充用户输入以在 for 循环中使用我的“文件夹”值,而无需直接键入

python input subprocess executable
© www.soinside.com 2019 - 2024. All rights reserved.