使用Windows命令行和Python子流程模块

时间:2018-01-28 18:52:17

标签: cmd path subprocess python-3.4 spaces

所以基本上我在Windows上遇到了最糟糕的情况...除了C之外的驱动器上有空格的路径:/

我正在尝试运行以下内容:

print(subprocess.check_call("cd d: && d: && " + '"' + dir_name + '"', shell=True))

其中dir_name是目录的名称加上可执行文件的名称。我得到dir_name的方式如下:

dir_path = os.path.dirname(os.path.realpath(__file__))
dir_name = (dir_path.replace("\\","/") + "/bowtie2-2.3.4-mingw-x86_64/bowtie2-build").replace(" ", "\\ ")

我还尝试了dir_name的几种不同变种:

  • dir_path + "/bowtie2-2.3.4-mingw-x86_64/bowtie2-build"
  • dir_path.replace("\\","/")+"/bowtie2-2.3.4-mingw-x86_64/bowtie2-build"

我已尝试使用和不使用引号围绕整个事情,我已尝试使用shell选项,我已在cmd.exe尝试过,基本上每次我都会类似的东西:

The system cannot find the path specified.

完整路径基本上是:

D:/My Documents/2018 Documents/Class Name/Assignment Name/Subfile/ProgramName

我试过的变种是:

  • D://My Documents//2018 Documents//Class Name//Assignment Name//Subfile//ProgramName
  • D:/My\ Documents/2018\ Documents/Class\ Name/Assignment\ Name/Subfile/ProgramName
  • D://My\ Documents//2018\ Documents//Class\ Name/Assignment\ Name//Subfile//ProgramName
  • "D:/My Documents/2018 Documents/Class Name/Assignment Name/Subfile/ProgramName"
  • "D:/My\ Documents/2018\ Documents/Class\ Name/Assignment\ Name/Subfile/ProgramName"
  • "D://My\ Documents//2018\ Documents//Class\ Name//Assignment\ Name//Subfile//ProgramName"

我现在正在做任何事情,非常感谢你!

编辑#1:

根据评论,我应该补充一点,我正在尝试运行bowtie2-build,这是Bowtie package中的无扩展程序。它需要两个命令行参数,一个输入文件和一个输出文件名。

0 个答案:

没有答案