写入文件和返回值的python多处理

时间:2017-12-14 08:27:45

标签: python multiprocessing file-writing

从数据库读取数据后,我想返回数据并将其写入csv文件。如何使用多处理来做到这一点?

def get_data():
    data = get_data_from_database() #a dataframe
    data.to_csv('data.csv', index=False) #step 1: write to csv file
    return data #step 2: return data

如何使用多处理来执行步骤1和步骤2?

2 个答案:

答案 0 :(得分:1)

试试这个;

def get_data():
        data = []
        data = get_data_from_database() #a dataframe
        if len(data) >0:
           for i in range (len(data)):
           data[i].to_csv('data.csv', index=False) #step 1: write to csv file
        return data #step 2: return data

答案 1 :(得分:1)

你的意思是多线程?如果是,那么如果你想在其他地方写入文件,你应该使用锁,这可能会成为代码中的痛苦!

但如果你不担心,你可以做这样的事情

import threading

def thread_write(data):
    data.to_csv('data.csv', index=False)  # step 1: write to csv file

def get_data():
    data = get_data_from_database() #a dataframe
    t = threading.Thread(target=thread_write, args=(data,)) #pass your function as target of thread, and it's input variables as a tuple to args
    t.start()
    return data  # step 2: return data