例如,我有两个python文件'test1.py''test2.py'。我想将import test2转换为test1,以便当我运行test1时,它也可以运行test2

但是,为了正常运行,test2需要输入参数。通常,当我从test2外部运行test1时,我只需要在command line中的文件调用之后键入参数即可。从test2中调用test1时如何实现?

最佳答案

根据编辑test2.py的能力,有两个选项:

  • (可以编辑)将test2.py内容打包到类中,并在init中传递args。

  • 在test1.py文件中:
    from test2 import test2class
    t2c = test2class(neededArgumetGoHere)
    t2c.main()
    

    在test2.py文件中:
    class test2class:
        def __init__(self, neededArgumetGoHere):
            self.myNeededArgument = neededArgumetGoHere
    
        def main(self):
            # do stuff here
            pass
    
    # to run it from console like a simple script use
    if __name__ == "__main__":
        t2c = test2class(neededArgumetGoHere)
        t2c.main()
    
  • (无法编辑test2.py)作为子进程运行test2.py。检查子进程docs以获得更多信息。

  • test1.py
    from subprocess import call
    
    call(['path/to/python','test2.py','neededArgumetGoHere'])
    

    关于python - 如何调用另一个Python文件中需要命令行参数的python文件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33218968/

    10-12 22:39