如何在python中实时打印长行?

如何在python中实时打印长行?,python,batch-file,printing,subprocess,Python,Batch File,Printing,Subprocess,我正在使用python脚本中的子进程打开.bat文件。这个.bat文件生成非常长的行,我想实时打印到控制台 问题是,这些行有时很长,因此无法放入缓冲区。我该怎么打印这些行呢?如果逐行打印,是否可以逐字打印 以下是我的工作: p = subprocess.Popen("testfile.bat", stdin=subprocess.PIPE) p.stdin.write("\r\n") # Some basic setup (simulated keypress) p.stdin.close()

我正在使用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()

您可以删除此行,但不需要:

line = line.replace('\r', '').replace('\n', '')
如果要逐字打印,请执行以下操作:

for line in iter(p.stdout.readline, ''):
    for word in line.split():
        print(word)
    sys.stdout.flush()

那么如何定义线呢?你是什么意思<代码>行已经定义,它是循环中的迭代变量,您不需要做任何额外的事情:它已经是一行了!我得到
未定义的变量:line
。迭代变量是
word
!你的答案非常令人困惑。您的解决方案是什么代码?这不适用于行中的word。split():打印(word)。请发布一份有效的解决方案,否则我无法接受您的建议answer@user2426316对不起,我以为你会更熟悉这门语言。我用完整的代码更新了我的答案