【问题标题】:Python multi thread or multi process parsing text data [duplicate]Python多线程或多进程解析文本数据[重复]
【发布时间】:2020-06-18 22:37:10
【问题描述】:

我有一个巨大的(>1GB 文本文件),我想解析并转换成更小的文件。

我的文本文件如下所示:

Iteration column1     column2     ....   column 10k
1         data_1_1    data_1_2           data_1_10k
2         data_2_1    data_2_2           data_2_10k
...
10k       data_10k_1    data_10k_2       data_10k_10k

我想解析此文本文件并将其转换为 10k CSV 文件,其中每个 CSV 文件将包含以下数据:

Iteration,   column
1,           data_1
2,           data_2
...,
10k,         data_10k

我正在寻找在 python 中执行此操作的最快方法。是否可以将其并行化为 10k 块?

【问题讨论】:

标签: python parsing parallel-processing python-multiprocessing python-multithreading


【解决方案1】:

我认为,如果您的文件“格式正确”,您可以轻松地使用numpy 函数来加载文本文件块。使用np.loadtxt(),您可以设置要跳过的行数和要读取的行数。通过这种方式,您可以设置一个简单的 for 循环,分块读取文件并写入另一个文件。

如果你想使用multiprocessing,你必须编写一个函数来读取文本文件的一部分并保存它。然后,使用pool.map()- 或pool.apply_async()-方法,您可以以与上述类似的方式遍历文件,但使用multiprocessing-module。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-03
    • 2023-03-07
    • 2021-01-23
    • 2022-11-02
    • 2015-03-12
    • 1970-01-01
    • 2016-12-04
    相关资源
    最近更新 更多