Python 使两个功能并行运行,打印输出到不同的行
我正在尝试创建一些函数,这些函数与python中的多处理并行运行。脚本如下所示:Python 使两个功能并行运行,打印输出到不同的行,python,multiprocessing,Python,Multiprocessing,我正在尝试创建一些函数,这些函数与python中的多处理并行运行。脚本如下所示: from multiprocessing import Process def func1(): for x in range(0,10000000): print(x, end = '\r') def func2(): for x in range(10000000,20000000): print(x, end ='\r') if __name__ ==
from multiprocessing import Process
def func1():
for x in range(0,10000000):
print(x, end = '\r')
def func2():
for x in range(10000000,20000000):
print(x, end ='\r')
if __name__ == '__main__':
p1 = Process(target=func1)
p1.start()
p2 = Process(target=func2)
p2.start()
p1.join()
p2.join()
但是,我运行这个脚本时,func1和func2都会在同一行中覆盖彼此的输出,但不会在单独的行中。有人知道如何解决这个问题吗?通常在打印时,输出会被缓冲,但如果flush关键字参数为
True
,则流会被强制刷新。这应该会有很大帮助。并且不需要指定结束参数;默认情况下,print
功能将使用正确的代码生成换行:
打印(x,flush=True)
为什么要使用\r
?你在windows上运行吗?这可能是个大问题。一些控制台/终端可能有特殊的代码来移动光标,您可以将它们添加到字符串中以将文本移动到预期的位置。但若控制台不使用代码,那个么您就无法解决它。您可以检查或类似modules@drum是的,我正在Windows上运行它。请改为尝试\r\n
,或者去掉它completely@ArtiomKozyrev我几天前生病了。我正在尝试你的和Booboo methodflush=True不起作用,输出仍然充斥着屏幕