一、生成待去重数据

每行是固定位数的数字串

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("———— 结束 ————")

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实现对文件进行单词划分并去重排序操作示例

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

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

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

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

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

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

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

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

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

  10. 如何用python最快的获取大文件的最后几行

    工作中经常会遇到处理日志文件的问题:为了得到日志的最新状态,我们需要获取日志文件的最后部分行来做判断.那么,这种情况下我们应该怎么做呢? 1)常规方法:从前往后依次读取 步骤:open打开日志文件. ...

最新文章

  1. mysql可视化工具-navicat的下载和使用
  2. Spring Validation(使用Hibernate Validator)
  3. 一周安全事件点评:***黑手正伸向商业数据
  4. Ubuntu系统---C++之Eclipse 开始工程项目
  5. oracel Pipelined pipe row的用法
  6. SMTP 错误代码大全
  7. AX2012导Demo数据
  8. 网狐荣耀手机端内核源码
  9. 黑龙江省鹤岗市谷歌高清卫星地图下载
  10. java mina 长连接_长连接神器Mina框架的使用
  11. 树莓派3自带了wifi
  12. app推广渠道数据统计
  13. uview基本配置,在HubildX中如何配置uni-app相关的组件
  14. mongo数据库创建用户
  15. STK12已出,STK 12 新特性介绍
  16. 【1024面试必备】厂长爆肝万字之多线程高并发JUC编程⭐建议收藏
  17. 汇总-13台虚拟机搭建一个高可用负载均衡集群架构
  18. 针对Matlab脑电数据EEG处理、 eeglab工具箱、Neuracle数据采集操作要点事项
  19. 驱动大尺寸数码管的方法与电路
  20. 礼物精选 个性化礼品推荐平台

热门文章

  1. Filter过滤器实现登录权限拦截
  2. 全国各地车牌代码整理出数据库表SQL Server
  3. Java案例2-1 商品入库
  4. 【Linux】NUC977移植使用libmodbus
  5. MAC打开eclipse一直卡在core.ui的解决办法
  6. UG应用标准库遇到 当前搜索选项查文件失败,部件已卸载
  7. python负数字符串转成_python 转字符
  8. charles破解版下载地址及其使用方法
  9. RANSAC介绍(Matlab版直线拟合+平面拟合)
  10. Springboot + Quartz 实现分布式定时任务集群