再会!
我有一个 python 脚本,它创建一个文件列表并在 multiprocess.Pool.map 和线程函数中处理它。线程函数使用外部可执行文件并通过 subprocess.check_call 调用它。这个外部可执行文件将一些信息打印到标准输出。
所以我在阅读这个输出时遇到了问题——有时它很乱,我无法从中获得任何有用的信息。我已经阅读了 python 中的打印和多线程,但我认为这不完全是我的问题,因为我没有在我的脚本中明确调用 print 函数。
我怎么解决这个问题?谢谢你。
另外,我注意到如果我将脚本的输出重定向到文件,则输出根本不会混乱。
[更新]:
如果我运行脚本,这很好用: python mp.py > mp.log
import time, argparse, threading, sys
from os import getenv
from multiprocessing import Pool
def f(x):
cube = x*x*x
print '|Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut %d|'%(cube)
return cube
if __name__ == '__main__':
#file = open('log.txt', 'w+')
parser = argparse.ArgumentParser(description='cube', usage='%(prog)s [options] -n')
parser.add_argument('-n', action='store', help='number', dest='n', default='10000', metavar = '')
args = parser.parse_args()
pool = Pool()
start = time.time()
result = pool.map(f, range(int(args.n)))
end = time.time()
print (end - start)
#file.close()