吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3557|回复: 30
收起左侧

[Python 原创] 智能分割TXT大文件

  [复制链接]
想把风吹灭的火 发表于 2023-2-1 00:58
有些太大的TXT文本电脑无法一下全部打开,使用程序对文本导入数据库的话又是单线程的导入,速度比较慢,所以分割一下,使用多线程,速度应该会比较快点。
CMD的命令自带的有分割命令,不过对于TXT文本内的数据无法准确的断点,这样导致我们多线程导入数据的时候。会出错只能舍弃一些数据。
所以我想,可不可以指定一个大小,使用python,让程序在此基础上,往后找到合适的断点位置,这里我使用的是换行符。
[Python] 纯文本查看 复制代码
if __name__ == "__main__":
    path="E:\\download\\测试数据.txt"
    with open(path,"rb") as fp:
        # 设置分割的大小,单位k
        size=300
        size=size*1024
        # 开始位置
        start=0
        # 读取的最终位置
        end=0
        # 计数器
        i=1
        byte=b"0"
        while byte!=b"":
            # 设置指针位置,主要是为了查找指针后面\n的位置,这个操作简称为“寻值”
            fp.seek(end+size,0)
            byte=fp.read(1)
            i+=1
            # 寻值
            while byte!=b"\n" and byte!=b"":
                byte=fp.read(1)
            end=fp.tell()
            # 存入文件
            with open("E:\\download\\a\\1\\"+str(i*1)+".txt","wb") as fp1:
                fp.seek(start,0)
                fp1.write(fp.read(end-start))
                start=end
        

分割后的数据,可以使用CMD命令“type ./*.txt >> ./11.txt”进行合并,我生成了一份测试TXT文本,使用这段代码进行了分割,最后再进行,合并,导入到EXCEL软件中,进行数据的对比,最终得到的结果,无数据丢失。
本来,我还想写多线程导入数据库来着的,不过这段代码我有已经看不懂了,处于玄学状态,测试的是没问题,不过不保证真的不出问题。
个人测试一个40G的文本,分割成1G的单文本(分割2G会报错,我也不知道为啥),总共需要约4分钟。
如果再使用多线程直接导入数据的话,相信速度就会快起来了。
PS:测试文本的数据是我用EXCEL直接生成的,不是啥机密数据
测试数据.txt (964 KB, 下载次数: 17)

免费评分

参与人数 10吾爱币 +12 热心值 +8 收起 理由
MAOSKE + 1 + 1 谢谢@Thanks!
苏紫方璇 + 3 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
timeni + 1 + 1 谢谢@Thanks!
yyb414 + 1 + 1 热心回复!
lijun888 + 1 谢谢@Thanks!
hanwuj2012 + 1 谢谢@Thanks!
ysy2001 + 1 + 1 谢谢@Thanks!
吾爱支持 + 1 + 1 谢谢@Thanks!
cntjgaowei + 1 + 1 谢谢@Thanks!
为之奈何? + 1 + 1 我很赞同!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

零下八度 发表于 2023-2-1 02:57
本帖最后由 零下八度 于 2023-2-1 03:00 编辑

你这思路不对呀,不是应该换个浏览器嘛?

几十GB而已,换个txt文件浏览器,还是可以秒开的嘛,你这切割还得几分钟....
sqemail 发表于 2023-2-1 07:33
tek2y 发表于 2023-2-1 02:44
zhangting2022 发表于 2023-2-1 06:07
感谢分享
wdz2018 发表于 2023-2-1 06:18
40G的文件,我这老古董估计得分割半小时左右
tanglikecuan 发表于 2023-2-1 07:40
来学习学习,思路很好。
xiaoxiaohh 发表于 2023-2-1 08:03
感谢分享
CrazyLife 发表于 2023-2-1 08:10
40G的文本,我电脑打开几百兆的小说都要卡好久
宜城小站 发表于 2023-2-1 08:26
谢谢分享
太大的文本文件可以试试
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 17:36

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表