代码之家  ›  专栏  ›  技术社区  ›  K Hutch

在os.walk中的另一个目录中运行程序

  •  0
  • K Hutch  · 技术社区  · 8 年前

    我目前正在尝试:

    subprocess.call("python3 parser_program", cwd=parser_location)
    

    在我的漫游功能中的适当位置。但是,我收到以下错误:

    FileNotFoundError: [Errno 2] No such file or directory: 'python3 parserprogram.py' 
    

    最终,运行解析器程序将需要一系列命令来调用Java程序;我只是使用一个简化的python程序作为故障排除的备用程序。我认为我的问题是我没有从子流程正确调用参数。调用函数,但我无法理解文档的全部内容。最初我使用的是操作系统。chdir可以从一个目录移到另一个目录,然后再移回来,这一直很好,直到它破坏了操作系统。浏览到下一个目录。如何运行一系列命令来调用另一个目录中的文件,而不中断操作系统。浏览我的原始目录?谢谢

    1 回复  |  直到 8 年前
        1
  •  0
  •   Ben Hoyt    8 年前

    例如 subprocess.run() documentation 显示 run() call()

    subprocess.call(['python3', 'parser_program'], cwd=parser_location)
    

    但是,如果您正在使用 shell=True 也就是说,通过将其传递到shell,您可以将参数作为单个字符串传递,如下所示:

    subprocess.call("python3 parser_program", shell=True, cwd=parser_location)
    

    使用 shell=True

    此外,如果您使用的是Python 3.5+, subprocess.run()