假设我们有三个进程,我们希望使用 Python 的
multiprocessing
库并行运行。
所有三个进程都在运行 foo:
def foo(id):
target = 100 * 1000
for i in range(1, target):
progress = round(i / target * 100, 2)
print(f'foo{id} progress:{progress}%')
这是并行运行三个进程的代码
import multiprocessing
if __name__ == '__main__':
pool = multiprocessing.Pool(processes=3)
pool.map(foo, [1,2,3])
pool.close()
pool.join()
我们如何编写我们的打印语句来整齐地输出以下内容:
foo1 progress: 44.44%
foo2 progress: 44.43%
foo3 progress: 44.42%
这样...
写完第一行后,可以使用
ESC
[
F
代码上一行。重复该字符串几次以上升不止一行。
每次你回到第一行的开头。
UP_ONE_LINE
# When writing a message for the top line:
print("progress ..."+UP_ONE_LINE)
# When writing a message for the second line:
print("\n"*1+"progress ..."+UP_ONE_LINE*2)
# When writing a message for the second line:
print("\n"*2+"progress ..."+UP_ONE_LINE*3)
如果你只是使用这个模式:
print("")
print("")
print("progress",UP_ONE_LINE,UP_ONE_LINE,UP_ONE_LINE)
...不同的
print
s可能会交错,而不是一个过程的所有印刷品快速连续发生。
事实上,即使是单个打印中的各种逗号分隔项目也可能在进程之间交错。
所以最好每个进程组装一个单串,然后送
print
ing。