使用Python将数据文本文件拆分为多个MySQL文本文件

问题描述 投票:0回答:2

我有一个数据txt文件,其格式设置为可以以下格式(有点夸张)加载到数据库(MySQL)中:

data.txt

name   age profession datestamp
John   23  engineer   2020-03-01
Amy    17  doctor     2020-02-27
Gordon 19  artist     2020-02-27
Kevin  25  chef       2020-03-01

以上内容是通过以下通过python执行的命令生成的:

LOAD DATA LOCAL INFILE '/home/sample_data/data.txt' REPLACE INTO TABLE person_professions 
FIELDS TERMINATED BY 0x01 OPTIONALLY ENCLOSED BY '\"' LINES TERMINATED BY '\n'
 (name,age,profession,datestamp)

创建data.txt;但是,data.txt确实非常庞大,无法一次全部插入(设置约200 MB的插入限制),我想将数据切成几块(data_1.txt,data_2.txt,data_3.txt等) 。)并一一插入,以免达到插入大小限制。我知道您可以逐行查找条件以将数据切出,例如

with open('data.txt', 'w') as f:
    data = f.read().split('\n')
    if some condition:
       with open('data_1.txt', 'w') as f2:
            insert data 

但是我不太确定如何提出条件断点,以使其开始插入新的txt文件,除非有更好的方法。

python mysql
2个回答
0
投票

我编写了一个函数,可以根据文件的大小完成工作。代码注释中的解释。


0
投票

[如果您只是想将大文件“分成”较小的块,并且不关心专门计算以减少所需的块数,那么:

© www.soinside.com 2019 - 2024. All rights reserved.