求助Python多进程执行shell命令的问题!

为什么log文件中写入的都是None...(几十万个),而不是我想要的结果!
数据量小(一千多个)还可以正常运行,上万条数据后就在log文件中写入上万个None,求助大神指点!!!

import os

date = '20170922'
date_yes= str(date)
local  = ('dir')
filelist = os.listdir(local + date_yes + '/')
log = open(local + date_yes + '.log', 'w')

def scanner(filename):
    res = os.popen("./FMTScanner -c config.ini -f ./%s/%s"% (date_yes,filename))
    lines = res.readlines()
    s = 'unknown data'
    for line in lines:
        if s in line:
            return line
        else:
            pass

def write(result):

    log.write(result)


def main():
    pool = Pool(12)
    for file in filelist:
        pool.apply_async(scanner,args = (file,),callback = write)
    pool.close()
    pool.join()
    log.close()

if __name__ =='__main__':
    main()
    
    
阅读 3.9k
2 个回答
✓ 已被采纳新手上路,请多包涵

已经解决了,callback获取scanner的返回值为空,scanner中for循环没有正确返回输出结果!

楼主怎么解决的呢

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题