这是一个常见的问题,但阅读其他线程并没有解决我的问题。我提供完整的路径以确保我没有犯任何路径设置错误。
import subprocess    
# create batch script
myBat = open(r'.\Test.bat','w+') # create file with writing access
myBat.write('''echo hello
pause''') # write commands to file
myBat.close()现在我试着通过三种不同的方式运行它,发现它们都在这里。在每种情况下,我的IDE Spyder都会进入繁忙模式,控制台就会冻结。没有弹出终端窗口什么的什么都没发生。
subprocess.call([r'C:\\Users\\felix\\folders\\Batch_Script\\Test.bat'], shell=True)
subprocess.Popen([r'C:\\Users\\felix\\folders\\Batch_Script\Test.bat'], creationflags=subprocess.CREATE_NEW_CONSOLE)
p = subprocess.Popen("Test.bat", cwd=r"C:\\Users\\felix\\folders\\Batch_Script\\")
stdout, stderr = p.communicate()每个操作都使用和不使用shell=True设置,也有和不带原始字符串、单个反斜杠等等。你能看出为什么这个不起作用吗?
发布于 2021-12-01 19:34:01
使用open(r'.\Test.bat','w+')作为myBat: myBat.write('echo hello\n‘)#file命令来文件
creationflags=subprocess.CREATE_NEW_CONSOLE) subprocess.Popen(r'Test.bat‘)
https://stackoverflow.com/questions/70189890
复制相似问题