使用os.system从另一个文件更改命令行值

时间:2018-05-24 13:27:45

标签: python python-2.7

代码的第一部分是文件名loop.py,我希望在第二个文件名中运行loop2.py。我想在运行文件loop2.py时将值12,15,17赋值给lattice_size。我怎么能这样做?

代码loop.py

import argparse
p=argparse.ArgumentParser()
p.add_argument('--lattice_size', '-ls',default=4, type=int, help='lattice')
FLAGS=p.parse_args()
print ("Lattice size is %d" % (FLAGS.lattice_size))`

代码loop2.py

import os
import sys
os.system("python loop.py")`

1 个答案:

答案 0 :(得分:1)

如果你想循环遍历这些参数,你应该可以使用:

import os
results = []
for ls in [12, 15, 17]:
    result = os.system('python loop.py --lattice_size %s' % str(ls))
    results.append(result)

这适用于Python 2.7或3.x。

您可能还想考虑使用subprocess.call。虽然我不太熟悉Python 2.7的语法,但它应该更安全,功能更丰富。

import subprocess
results = []
for ls in [12, 15, 17]:
    command = ['python', 'loop.py', '--lattice_size', str(ls)]
    result = subprocess.call(command)
    results.append(result)  # make list of results
    print(result)