Command line 打开在python中打开文本文件的批处理文件

Command line 打开在python中打开文本文件的批处理文件,command-line,python-3.x,Command Line,Python 3.x,我正在编写一个脚本,可以执行一个批处理文件,它需要先打开同一文件夹中的一个文件。我目前的代码是: from subprocess import Popen p = Popen("Mad8dl.bat <RUNTHISTO.txt>", cwd=r"C:\...\test") stdout, stderr = p.communicate() 如果您对语法有任何帮助,我们将不胜感激。首先,您可能应该从代码中删除尖括号;只需将文件名(不带任何括号)传递到批处理文件。(除非您的文件名确实包

我正在编写一个脚本,可以执行一个批处理文件,它需要先打开同一文件夹中的一个文件。我目前的代码是:

from subprocess import Popen
p = Popen("Mad8dl.bat <RUNTHISTO.txt>", cwd=r"C:\...\test")
stdout, stderr = p.communicate()

如果您对语法有任何帮助,我们将不胜感激。

首先,您可能应该从代码中删除<和>尖括号;只需将文件名(不带任何括号)传递到批处理文件。(除非您的文件名确实包含<和>字符,在这种情况下,我很想知道您是如何管理它的,因为这些字符在Windows的文件名中是被禁止的)

其次,您的代码应该如下所示:

from subprocess import Popen, PIPE
p = Popen(["Mad8dl.bat", "RUNTHISTOO.txt"], cwd=r"C:\...\test", stdout=PIPE, stderr=PIPE)
stdout, stderr = p.communicate()
请注意包含调用组件的列表,而不是单个字符串。还要注意,如果以后要使用communicate(),则需要在Popen()调用中指定
stdout=PIPE
stderr=PIPE

from subprocess import Popen, PIPE
p = Popen(["Mad8dl.bat", "RUNTHISTOO.txt"], cwd=r"C:\...\test", stdout=PIPE, stderr=PIPE)
stdout, stderr = p.communicate()