呼叫exe需要其他文件夹中的文本输入文件

时间:2019-09-30 23:07:53

标签: python subprocess

我有一个小的.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文件,而必须在文件夹本身中?

0 个答案:

没有答案