我正在使用Python脚本中的子进程打开一个.bat
文件。这个.bat
文件生成非常长的行,我希望实时将它们打印到控制台。
问题在于,有时这些行非常长,以至于不适合缓冲区。我该怎么办才能打印这些行呢?是否可以逐个单词地打印而不是逐行打印?
这是我的做法:
p = subprocess.Popen("testfile.bat", stdin=subprocess.PIPE)
p.stdin.write("\r\n") # Some basic setup (simulated keypress)
p.stdin.close()
# The actual print loop
for line in iter(p.stdout.readline, ''):
line = line.replace('\r', '').replace('\n', '')
print(line)
sys.stdout.flush()
for word in line.split(): print(word)
不起作用。请提供一个可行的解决方案,否则我无法接受你的回答。 - user2426316