我有一个很大的文件列表,我使用如下函数处理这些文件:
import pandas as pd
def readdatafile(reportdate: str)->None:
df = pd.read_excel("{}_datafile.xlsx".format(reportdate))
mergeddf = makemergeddf(df, reportdate)
mergeddf.to_excel("{}_mergeddf.xlsx".format(reportdate))
keydf = makekeydf(mergeddf)
keydf.to_excel("{}_keydf.xlsx".format(reportdate))
productdf = makeproductdf(mergeddf)
productdf.to_excel("{}_productdf.xlsx".format(reportdate))
lineleveldf = mergeddf.apply(mergeddfrowhandler, axis = 1)
lineleveldf.to_excel("{}_lineleveldf.xlsx".format(reportdate))
print("{}: done".format(reportdate))
对于单进程、单线程,我会:
for date in reportdatelist:
readdatafile(date)
每个文件都需要c.3分钟,因此我将根据this等源代码以以下方式探索多处理模块:
import multiprocessing
start = time.time()
pool = multiprocessing.Pool()
pool.map(readdatafile, reportdatelist[:6])
pool.close()
print(time.time() - start)
即使在半小时后有较小的报告日期子列表,程序仍在运行,没有将任何文件写入目标文件夹。我想知道这是否是因为readdatafile()
中同时存在文件读取和文件写入?任何使用多处理或其他模块来解决此问题的建议都会有所帮助。谢谢
目前没有回答
相关问题 更多 >
编程相关推荐