【问题标题】:Run file via subprocess from different directory通过来自不同目录的子进程运行文件
【发布时间】:2020-10-25 22:36:57
【问题描述】:

当我运行cleaner.py 时,我希望它运行duplicate.py 并将输出存储在一个变量中。 那么如何通过 subprocess 定位到终端中的目录呢?我已经尝试过使用:

output = subprocess.run('python duplicate.py', cwd = '/files', capture_output = True)

【问题讨论】:

    标签: python python-3.x macos terminal subprocess


    【解决方案1】:

    /files 是指向根目录//files 的绝对路径。 你很可能想使用./files

    【讨论】:

    • 当我还在我的代码中实现 odenS0n 的答案时,这确实解决了问题。谢谢! :)
    【解决方案2】:

    除了 mnagel 的相对路径答案——我还发现在这种情况下需要将 args 指定为列表。否则子进程会抛出 FileNotFoundError 寻找 python ./duplicate.py

    output = subprocess.run(['python', './duplicate.py'], cwd = './files', capture_output = True)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-29
      • 1970-01-01
      • 1970-01-01
      • 2012-02-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多