我正在尝试在python中运行线程,但未看到输出

时间:2018-12-20 14:46:52

标签: python multithreading file-handling

这在for循环上运行;

for something in something:
   if qf.isAlive:
            qf.join()
            qf.run()
            print('File writing thread id alive and now running')
        else:
            qf.start()
            print('File writing thread started')

然后我在循环之外定义了这两个代码;

qf = threading.Thread(target=add_to_file)
qf.setDaemon = True

这是写入文件的功能;

def add_to_file():
    with open('queue.txt', 'w+') as f:
       f.write(str(list(queue)))
       f.close()

我没有得到任何输出,因为“文件写入线程处于活动状态...”,而且queue.txt文件为空 请帮助我。

1 个答案:

答案 0 :(得分:0)

这里发生了几件事。首先,打印语句可能已缓冲,您可以执行以下操作:

import sys
...and then after your loop...
sys.stdout.flush()

第二,尽管您没有在代码中显示变量queue指向的内容,但是如果变量print与那些线程相关,请注意df['Abbreviation'] = (df['Full form'].replace(stopwords, '', regex=True) .str.split() .apply(lambda word: [l[0].upper() for l in word]) .str.join('')) 不会返回任何内容,因此它将为空