一、生成待去重数据

每行是固定位数的数字串

import os

from random import randint

#-- from u_工具 import *

print("———— 开始 ————")

#-- 打点()

# 用来配置的变量

位数 = 13

行数 = 500 * 10000

输出目录 = "./a_输入"

输出文件 = f"{输出目录}/随机数.txt"

# 预处理

_00 = "".join(["0" for i in range(位数 - 1)])

_100 = "1" + _00

最小值 = int(_100)

_1000 = _100 + "0"

最大值 = int(_1000)

if not os.path.exists(输出目录):

os.makedirs(输出目录)

#-- 输出文件 = 文件名防重_追加数字(输出文件)

# 实际处理

with open(输出文件,"a") as f:

for i in range(行数):

f.write(f"{randint(最小值, 最大值)}\n")

百分比 = (i+1) / 行数 * 100

if 百分比 == int(百分比):

print(f"已完成{int(百分比)}%")

#-- 打点()

#-- print(f"\n总耗时:{计时(0)}")

print("———— 结束 ————")

二、通过set()按行去重

1. 按原值比较

(1)读取全部数据

(2)用正则表达式来分行

(3)通过set数据结构来去除重复数据

(4)将set的数据写入文件

import os

import re

#-- from u_工具 import *

print("———— 开始 ————")

#-- 打点()

# 用来配置的变量

输入目录 = "./a_输入"

输出目录 = "./b_输出"

输出文件 = f"{输出目录}/去重结果.txt"

# 预处理

# 目录不存在就手动建立

if not os.path.exists(输出目录):

os.makedirs(输出目录)

if not os.path.exists(输入目录):

os.makedirs(输入目录)

#-- 输出文件 = 文件名防重_追加数字(输出文件)

# 获取待去重文件

待去重文件列表 = []

待去重文件列表 = [f"{输入目录}/{i}" for i in os.listdir(输入目录)]

#-- getDeepFilePaths(待去重文件列表,输入目录,"txt")

print(f"\n总共{len(待去重文件列表)}个文件")

# 实际处理

all_lines = []

文件个数 = 0

for 文件 in 待去重文件列表:

文件个数 += 1

print(f"\n处理第{文件个数}个文件")

#-- 打点()

# (1)读全部

with open(文件) as f:

data = f.read()

# (2)正则分行

regx = '''[\w\~`\!\@\#\$\%\^\&\*\(\)\_\-\+\=\[\]\{\}\:\;\,\.\/\\?]+'''

lines = re.findall(regx, data)

all_lines.extend(lines)

#-- 打点()

#-- print(f"读取完毕,耗时:{计时()}")

# (3)集合去重

all_lines_set = set(all_lines)

#-- 打点()

#-- print(f"\n\n去重完毕,耗时:{计时()}")

# (4)循环写入

with open(输出文件,"a") as f_rst:

for line in all_lines_set:

f_rst.write(line + '\n')

#-- 打点()

#-- print(f"\n写入完毕,耗时:{计时()}")

#-- 打点()

#-- print(f"\n\n总耗时:{计时(0)}")

print("———— 结束 ————")

王晓博客 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权

转载请注明原文链接:python3 大文件去重的方法

python大文件去重_python3 大文件去重的方法相关推荐

  1. python 压缩文件夹_python3 压缩文件及文件夹

    zipfile模块 ZIP 文件格式是一个常用的归档与压缩标准. 这个模块提供了创建.读取.写入.添加及列出 ZIP 文件的工具. 它可以处理使用 ZIP64 扩展(超过 4 GB 的 ZIP 文件) ...

  2. python 获取文件列表_Python3 - 获取文件夹中的文件列表

    问题 获取文件系统中某个目录下的所有文件列表. 解决方案 使用 os.listdir() 函数来获取某个目录中的文件列表,比如: import os file_name = os.listdir('/ ...

  3. python中排序英文单词怎么写_Python实现对文件进行单词划分并去重排序操作示例...

    本文实例讲述了Python实现对文件进行单词划分并去重排序操作.,具体如下: 文件名:test1.txt 文件内容: But soft what light through yonder window ...

  4. python读取大文件-Python如何读取、拆分大文件

    简述 最近和第三方数据接触较多,数据量也开始陡增,从一开始的1KW行,最大到了1亿行,这让我这个常年处理"小数据'的人有点捉襟见肘.本来数据放在hive中也是可以操作的,但是有时候需求是做一 ...

  5. python 读取大文件_Python读取大文件

    1. 前言 前几天在做日志分析系统,需要处理几十G的文件,我尝试用原来的for line in open(filepath).readlines()处理,但停顿好久也没变化,可见占用不小的内存.在网上 ...

  6. python编程单词排序_Python实现对文件进行单词划分并去重排序操作示例

    本文实例讲述了Python实现对文件进行单词划分并去重排序操作.分享给大家供大家参考,具体如下: 文件名:test1.txt 文件内容: But soft what light through yon ...

  7. python单词去重及排序_Python实现对文件进行单词划分并去重排序操作示例

    本文实例讲述了Python实现对文件进行单词划分并去重排序操作.分享给大家供大家参考,具体如下: 文件名:test1.txt 文件内容: But soft what light through yon ...

  8. python从入门到大神---4、python3文件操作最最最最简单实例

    python从入门到大神---4.python3文件操作最最最最简单实例 一.总结 一句话总结: python文件操作真的很简单,直接在代码中调用文件操作的函数比如open().read(),无需引包 ...

  9. python 重复图片_删除重复文件或图片(去重)的python代码

    通过python爬虫或其他方式保存的图片文件通常包含一些重复的图片或文件, 通过下面的python代码可以将重复的文件删除以达到去重的目的.其中,文件目录结构如下图: # /usr/bin/env p ...

  10. python 浏览器下载文件_同样一个下载地址,用python爬虫爬取的种子文件大小为0,而用浏览器是可以正常下载下来的?...

    1.访问某个网页,用浏览器可以下载其中嵌入的种子文件,种子文件大小是正常的,用迅雷工具也可以正常下载,但是用python爬虫爬取,并且下载下来的数据大小为0? 2.这是我自己写的代码. url = ' ...

最新文章

  1. Python3中collections.OrderedDict介绍
  2. 中国数字化进程比发达国家快,小程序让我感到自豪 | IT领袖峰会
  3. Pandas简明教程-适用于竞赛、研究以及办公自动化
  4. 用WINRAR巧妙分割大压缩包
  5. 其他类型的链表和线性表的总结(一级)
  6. 手持gps坐标转换参数求解方法及在excel中的实现_怎么在GIS office 软件中批量导入坐标点位...
  7. 教自己如何的口若悬河
  8. VB制作OCX控件的步骤
  9. mysql 乐观锁和悲观锁,MySQL中的悲观锁与乐观锁
  10. 华为在鸿蒙的另一张王牌,华为的这两张王牌,将助力Mate40系列角逐安卓机皇的位置...
  11. VM虚拟机的三种网络连接模式
  12. windows电脑 安装asreml 设置防火墙 network TCP ports 5053 5443
  13. 在IGBT的开启过程中,IGBT的电压降低,电流上升,在IGBT的关断过程中IGBT的电压上升,电流下降,在一段时间内,电压和电流均不为0,由于功率等于电压乘以电流,即P=U×I,因此将产生损耗,开
  14. 百度诉被奇虎科技有限公司(以下简称北京奇虎公司)、奇虎三六零软件(北京)有限公司(以下简称奇虎三六零公司)不正当竞争纠纷一案
  15. 微信公众号上传素材并回复关键词推送该素材:thinphp开发微信公众号如何上传临时素材库
  16. DS18B20 数字温度传感器的使用和基于RT-Thread操作系统的实现
  17. html向上无间隔滚动文字(图片)
  18. 从AWS S3换成阿里云OSS存储所踩的坑
  19. 微店新品!微店首款《疯狂野蛮人》横版动作游戏来啦!
  20. ENVI_IDL: 批量制作专题地图

热门文章

  1. 哈勃分析系统解密:中招敲诈木马不用交赎金
  2. Netperf 网络性能测试
  3. UINavigationBar颜色设置 用色码设置有误差
  4. linux gif录制工具,Ubuntu中的Gif动画录制工具byzanz
  5. junit5教程_JUnit5教程
  6. libmodbus 封装成dll_Windows Visual Studio 2017 编译 libmodbus
  7. hi3798 run linux,EC6108V9(HI3798MV100)刷(linux)ubuntu16.04
  8. Ubuntu 的护眼软件 :RedShift
  9. 转 可以word ,excel ,pdf ,ppt 导入和导出的思维导图
  10. python贴吧-python爬取贴吧帖子