【发布时间】:2019-12-06 15:36:31
【问题描述】:
我编写了一个代码来从特定文件格式中提取数据并导出到 *.csv 文件。我正在为多个相同格式的文件循环执行此操作。通过这种方式,我只使用计算机的一个核心(加载
我编写的以下代码不能在循环中工作,希望获得有关如何以正确方式执行此操作的建议。
提前致谢。
这是我的完整代码。
from pathlib import Path
from win32com.client import Dispatch
import os
import multiprocessing as mp
# Provide path to import and export data
import_path = r'C:\Data_Analysis\New_folder.' # data folder path
export_path = r'C:\Data_Analysis\New_folder\Export' # CSV file export folder path
def multiprocessing_func(filenames):
for filenames in Path(import_path).rglob('*.dxz'):
# Call DCOM object
dw = Dispatch("Dewesoft.App")
# Initialise the software
dw.Init()
# Load data file
dw.LoadFile(filenames)
# Change the channels property
for i in range(0, dw.Data.AllChannels.Count):
dw.Data.AllChannels.Item(i).Exported = True
dw.Data.AllChannels.Item(i).CustExportRate = 1
# Extract file name from imported file
ExpName = os.path.basename(filenames)
ExportName = os.path.splitext(ExpName)[0]
# Export data to CSV file
dw.ExportData(7, 1, export_path + "\\" + ExportName + ".csv")
# Close the software
dw = None
if __name__ == '__main__':
pool = mp.Pool()
pool.map(multiprocessing_func, Path(import_path).rglob('*.dxz'))
pool.close()
pool.join()
【问题讨论】:
-
你不是在做并行处理,你只是在创建一个从文件中读取的进程。
标签: python loops for-loop multiprocessing python-multiprocessing