@
topbandit 大神留步。
我改了一下我的代码。试了,不打印。求大神给看看。
def stdout_theard(stdout_lock, p_stdout):
for i in range(3000):
s = p_stdout.readline()
if len(s)>0:
print s # 这里没有打印
time.sleep(0.01)
if __name__ == "__main__":
os.chdir('C:\\Program Files (x86)\\MySQL\\MySQL Server 5.0\\bin')
s_mian_command = 'mysql -h localhost -uroot -p1234'
l_command = ['show databases;', 'use mysql;', 'show tables;']
sub_process = subprocess.Popen(s_mian_command,
stdin = subprocess.PIPE,
stdout = subprocess.PIPE,
stderr = subprocess.PIPE,
shell = True)
stdout_lock = threading.Lock()
thread_read_output = threading.Thread(target=stdout_theard,
args=(stdout_lock,sub_process.stdout))
thread_read_output.setDaemon('True')
thread_read_output.start()
for s_command in l_command:
time.sleep(1)
sub_process.stdin.write(s_command + '\r\n')
print s_command # 这里是打印的
打印的结果就是:
show databases;
use mysql;
show tables;
密码啥的都没问题。后台也确确实实执行了的(我用 PowerCmd 能看到后台是执行了的),就是没打印。
黑人问号黑人问号。