首页 > 解决方案 > 调用 exe 需要来自不同文件夹的文本输入文件

问题描述

我有一个.exe需要输入文件 ( in.txt) 并生成输出文件 ( out.txt) 的小文件。我有一个 python 脚本,我想调用它来代替使用批处理文件,但我发现以下都不起作用:

import subprocess

dir_cwd  = Path(r"current/folder")
dir_program = Path(r"path/to/folder/containing/exe")
dir_dest = Path(r"path/where/i/actually/want/to/store/stuff")

# this:
for i in xrange(n):
  p = subprocess.Popen([dir_program/"program.exe"])
  p.wait()

# or:
subprocess.call([dir_program/'someprog.exe'])

除非我实际进入文件夹并执行以下操作,否则它似乎不起作用:

import os
import shutil
from pathlib import Path

dir_cwd  = Path(r"current/folder")
dir_program = Path(r"path/to/folder/containing/exe")
dir_dest = Path(r"path/where/i/actually/want/to/store/stuff")

os.chdir(dir_dest)
for x in runs_list:
    os.system("program.exe")
    shutil.move("out.txt", dir_dest/"out.txt")
os.chdir(dir_cwd)

我不想在此脚本期间更改目录。该 exe 是从旧代码编译的旧fortran程序,我想知道这是否是问题所在。有谁知道为什么我不能使用文件夹的某些路径运行 exe 文件,而是必须在文件夹本身中?

标签: pythonsubprocess

解决方案


推荐阅读