python大文件去重_python3 大文件去重
一、生成待去重数据
每行是固定位数的数字串
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 大文件去重相关推荐
- python 压缩文件夹_python3 压缩文件及文件夹
zipfile模块 ZIP 文件格式是一个常用的归档与压缩标准. 这个模块提供了创建.读取.写入.添加及列出 ZIP 文件的工具. 它可以处理使用 ZIP64 扩展(超过 4 GB 的 ZIP 文件) ...
- python 获取文件列表_Python3 - 获取文件夹中的文件列表
问题 获取文件系统中某个目录下的所有文件列表. 解决方案 使用 os.listdir() 函数来获取某个目录中的文件列表,比如: import os file_name = os.listdir('/ ...
- python中排序英文单词怎么写_Python实现对文件进行单词划分并去重排序操作示例...
本文实例讲述了Python实现对文件进行单词划分并去重排序操作.,具体如下: 文件名:test1.txt 文件内容: But soft what light through yonder window ...
- python读取大文件-Python如何读取、拆分大文件
简述 最近和第三方数据接触较多,数据量也开始陡增,从一开始的1KW行,最大到了1亿行,这让我这个常年处理"小数据'的人有点捉襟见肘.本来数据放在hive中也是可以操作的,但是有时候需求是做一 ...
- python编程单词排序_Python实现对文件进行单词划分并去重排序操作示例
本文实例讲述了Python实现对文件进行单词划分并去重排序操作.分享给大家供大家参考,具体如下: 文件名:test1.txt 文件内容: But soft what light through yon ...
- python单词去重及排序_Python实现对文件进行单词划分并去重排序操作示例
本文实例讲述了Python实现对文件进行单词划分并去重排序操作.分享给大家供大家参考,具体如下: 文件名:test1.txt 文件内容: But soft what light through yon ...
- python从入门到大神---4、python3文件操作最最最最简单实例
python从入门到大神---4.python3文件操作最最最最简单实例 一.总结 一句话总结: python文件操作真的很简单,直接在代码中调用文件操作的函数比如open().read(),无需引包 ...
- python 重复图片_删除重复文件或图片(去重)的python代码
通过python爬虫或其他方式保存的图片文件通常包含一些重复的图片或文件, 通过下面的python代码可以将重复的文件删除以达到去重的目的.其中,文件目录结构如下图: # /usr/bin/env p ...
- python 浏览器下载文件_同样一个下载地址,用python爬虫爬取的种子文件大小为0,而用浏览器是可以正常下载下来的?...
1.访问某个网页,用浏览器可以下载其中嵌入的种子文件,种子文件大小是正常的,用迅雷工具也可以正常下载,但是用python爬虫爬取,并且下载下来的数据大小为0? 2.这是我自己写的代码. url = ' ...
- 如何用python最快的获取大文件的最后几行
工作中经常会遇到处理日志文件的问题:为了得到日志的最新状态,我们需要获取日志文件的最后部分行来做判断.那么,这种情况下我们应该怎么做呢? 1)常规方法:从前往后依次读取 步骤:open打开日志文件. ...
最新文章
- mysql可视化工具-navicat的下载和使用
- Spring Validation(使用Hibernate Validator)
- 一周安全事件点评:***黑手正伸向商业数据
- Ubuntu系统---C++之Eclipse 开始工程项目
- oracel Pipelined pipe row的用法
- SMTP 错误代码大全
- AX2012导Demo数据
- 网狐荣耀手机端内核源码
- 黑龙江省鹤岗市谷歌高清卫星地图下载
- java mina 长连接_长连接神器Mina框架的使用
- 树莓派3自带了wifi
- app推广渠道数据统计
- uview基本配置,在HubildX中如何配置uni-app相关的组件
- mongo数据库创建用户
- STK12已出,STK 12 新特性介绍
- 【1024面试必备】厂长爆肝万字之多线程高并发JUC编程⭐建议收藏
- 汇总-13台虚拟机搭建一个高可用负载均衡集群架构
- 针对Matlab脑电数据EEG处理、 eeglab工具箱、Neuracle数据采集操作要点事项
- 驱动大尺寸数码管的方法与电路
- 礼物精选 个性化礼品推荐平台