0

我的程序目前包含 2 个 .py 文件。

我在 pypy 中运行代码的主要部分(这要快得多),然后在 python 中打开第二个文件,该文件使用matplotlib.pyplot.

我已经设法打开使用:

subprocess.Popen(['C:\\python26\\python.exe ','main_plot.py',])

打开我的第二个文件...

import matplotlib.pyplot as pyplot
def plot_function(NUMBER):
    '''some code that uses the argument NUMBER'''
    pyplot.figure()
    ---plot some data---
    pyplot.show()

但是,我希望能够将参数传递给plot_function在 python 中打开的。那可能吗?

4

2 回答 2

2

是的,Popen 构造函数采用长度为 n 的列表。请参阅此处的注释。因此,只需将 main_plot.py 的参数添加到您的列表中:

subprocess.Popen(['C:\\python26\\python.exe ','main_plot.py','-n',1234])

编辑(回应您的编辑):

您需要修改 main_plot.py 以接受命令行参数来调用您的函数。这将做到:

import matplotlib.pyplot as pyplot
def plot_function(NUMBER):
    '''some code that uses the argument NUMBER'''
    pyplot.figure()
    ---plot some data---
    pyplot.show()

import argparse
if __name__=="__main__":
    argp=argparse.ArgumentParser("plot my function")
    argp.add_argument("-n","--number",type=int,default=0,required=True,help="some argument NUMBER, change type and default accordingly")
    args=argp.parse_args()
    plot_function(args.number)
于 2012-12-06T19:38:44.417 回答
0

最简单的方法是os.system("main_plot.py arg")

于 2012-12-06T19:38:26.323 回答