python调用完bat后,程序进入等待状态了

Python019

python调用完bat后,程序进入等待状态了,第1张

使用python的子进程模块来执行.bat文件。

不需要使用低级线程原语的多线程程序,如互斥,读写锁,等待条件或信号。

用QtConcurrent编写的程序会根据可用处理器内核的数量自动调整使用的线程数。

bat和python混合编写方法,以下代码保存为xx.bat,编码存为无bom头的utf-8编码

#encoding: utf-8

#Python 3.6.0

'''

@echo off&cls

set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4

title %#% +%$%%$%/%@% %z%

set num=3

python "%~f0" "%num%"

echo%#% +%$%%$%/%@% %z%

pause&exit

'''

import sys

import pandas as pd

print(int(sys.argv[1]) * 10)

print('xx' * 3)

python编码启动cmd批处理文件(.bat文件),用subprocess方法可以将相应的cmd输出获取到,代码如下:

#import os

#os.system("c:\\sam.bat")

import subprocess

cmd = 'cmd.exe c:\\sam.bat'

p = subprocess.popen("cmd.exe /c" + "c:\\sam.bat abc", stdout=subprocess.pipe, stderr=subprocess.stdout)

curline = p.stdout.readline()

while(curline != b''):

print(curline)

curline = p.stdout.readline()

p.wait()

print(p.returncode)sam.bat批处理文件代码:

echo hello world!

echo show %1%