【发布时间】:2021-09-01 03:06:54
【问题描述】:
我有一个下面的代码,我试图将 sys.argv[1] 传递给我的所有 python 脚本,使用日期作为参数。目标是从命令行运行。但它没有在 file1.py、file2.py 和 file3.py 中获取日期。请提出建议。
command line: python C:\user\auto.py 03-Jan-2020
#code: auto.py
date = str(sys.argv[1])
print(sys.argv[1])
#reading python scripts
scripts_list = [r'C:\user\file1.py', r'C:\user\file2.py', r'C:\user\file3.py']
output_list = [r'C:\user\out1.py', r'C:\user\out2.py',
r'C:\user\out3.py']
input_processes = []
output_processes = []
for script in scripts_list:
p = subprocess.Popen(['python', script])
input_processes.append(p)
for p in input_processes:
p.wait()
for script in output_list:
p = subprocess.Popen(['python', script])
output_processes.append(p)
for p in output_processes:
p.wait()
【问题讨论】:
-
sys.argv[1]已经是字符串了,不需要调用str()。 -
展示你是如何执行
scripts_list中的脚本的。 -
你为什么要用 Python 做这个?这是一个简单的 shell 脚本。
-
for script in $scripts_list; do python $script "$1"; done -
@Barmar.. 我已经创建了使用“子进程”库并行运行 file1.py、file2.py 的列表。为此,我必须创建要运行的 python 文件列表。