标签:python,文本分割,文件分割
本文实例为大家分享了python实现大文本文件分割的具体代码,供大家参考,具体内容如下
开发环境
Python 2
实现效果
通过文件拖拽或文件路径输入,实现自定义大文本文件分割。
代码实现
#coding:gbk
import os,sys,shutil
is_file_exits=False
while not is_file_exits:
files_list=[]
if(len(sys.argv)==1):
print('请输入要切割的文件完整路径:')
files_path=raw_input().strip()
for str_file_path in files_path.split(' '):
if(str_file_path.strip()==''):
continue
if(not os.path.exists(str_file_path.strip())):
print(str_file_path.strip()+'文件路径不存在,请重新输入!')
is_file_exits=False
break
else:
files_list.append(str_file_path.strip());
is_file_exits=True
else:
for str_file_path in sys.argv[1:len(sys.argv)]:
if(str_file_path.strip()==''):
continue
if(not os.path.exists(str_file_path.strip())):
print(str_file_path.strip()+'文件路径不存在,请重新输入!')
is_file_exits=False
break
else:
files_list.append(str_file_path.strip());
is_file_exits=True
print('待切割文件:'+str(files_list))
is_continue=False
while not is_continue:
print('请输入要切割的文件个数:')
str_files_count=raw_input()
if str_files_count.isdigit():
is_continue=True
else:
print('请输入正确的数字!')
for file_path in files_list:
split_file_path=''
total_lines_count=0
lines_count=0
files_count=int(str_files_count)
print('正在统计文本行数.....')
total_lines_count = len(open(file_path,'rU').readlines())
print('文本总行数:'+str(total_lines_count))
if files_count>total_lines_count:
print('文本太小,不值得分割!')
sys.exit()
(filepath,filename) = os.path.split(file_path);
(filepathname,extension) = os.path.splitext(file_path)
if os.path.exists(filepathname):
shutil.rmtree(filepathname)
os.mkdir(filepathname)
lines_count=int(total_lines_count/files_count)
mod_count=total_lines_count%files_count
print('正在进行文件分割.....')
line_num=0
file_num=0
temp=-1
for line in open(file_path,'rU').readlines():
if file_num<mod_count:
file_num=int(line_num/(lines_count+1))
else:
file_num=int((line_num-mod_count*(lines_count+1))/lines_count+mod_count)
split_file_path=filepathname+'/'+str.replace(filename,extension,'_'+str(file_num)+extension)
with open(split_file_path,'a+') as split_file:
split_file.write(line)
if temp!=file_num:
print('正在生成:'+split_file_path)
temp=file_num
line_num+=1
print(file_path+'分割完成!')
split_file.close()
os.system('pause')
源码地址
来源:https://blog.csdn.net/weixin_42078760/article/details/89033381


猜你喜欢
- 本篇文章的python版本为:什么是httphttp是一个应用层协议,准确的来说是基于TCP/IP4层网络协议中的传输层中的TCP应用层协议
- clone 一个新项目,发现导包的时候出错 …原因可能是 pycharm 的根目录设置不对。设置根目录的步骤 如下 :来源:https://
- 首先来看,ASP读取ACCESS数据库。代码如下:<% @language="VBScript"&nbs
- Silverlight和Flash,到底谁更强?谁更有优势?很多初接触Silverlight和Flash的人总是会问这个问题,因为它们在表面
- 背景众所周知,go语言可打包成目标平台二进制文件是其一大优势,如此go项目在服务器不需要配置go环境和依赖就可跑起来。操作需求:打包部署到c
- 0. 前言无论在工作中,还是学习中,都会出现这样子的需求,对某张表进行了排序(按时间排序也好,其他字段排序也罢),然后获取前x行的数据,由于
- 假设你想设计一个模块集(也就是一个“包”)来统一处理声音文件和声音数据。通常由它们的扩展有不同的声音格式,例如:WAV,AIFF,AU),所
- 年关将近,抽奖想必是大家在公司年会上最期待的活动了。如果老板让你做一个年会抽奖的程序,你会怎么实现呢?今天给大家介绍一下如何通过 SQL 语
- 1、旅行商问题(Travelling salesman problem, TSP)旅行商问题是经典的组合优化问题,要求找到遍历所有城市且每个
- javascript作为一个动态语言,动态解析脚本的方法非常多,如万恶又万能的eval,低调的Function,IE独占的execScrip
- 其实我们平时在深度学习中所说的卷积操作,在 opencv 中也可以进行,或者说是类似操作。那么它是什么操作呢?它就是图像的模糊(滤波)处理。
- 目录1、可迭代对象1.1什么是可迭代对象1.2怎么判断2、字符串的for循环3、列表的for循环4、元组的for循环5、字典的for循环5.
- 匿名函数什么是匿名函数用一句话表达只有返回值的函数就是匿名函数。匿名函数只用来实现一些简单的函数功能,所以追求代码的简洁和高效。使用关键字
- 当我们利用html代码制作网页时,可以用以下方法进行python代码的调用:1.简单的python代码例如输出‘hell
- 这篇文章主要介绍了Python列表切片常用操作实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋
- 在近日的写Web程序时用到了Access的模糊查询,在Acces里写代码怎么也找不到记录后来才起来原来Acess和SqlServer的模糊查
- -- 1. 查看被锁的表SELECT p.spid, a.serial#, c.object_name, b.session_id, b.o
- python中zip函数返回一个以元组为元素的列表,其中第 i 个元组包含每个参数序列的第 i 个元素。返回的列表长度被截断为最短的参数序列
- 场景昨天系统自动备份了某一个数据库的全部表数据,名dbAll.sql.gz。文件较大(如40G)今天因发现某一个表tableA的一条数据存在
- 正向最大匹配# -*- coding:utf-8 -*-CODEC='utf-8'def u(s, encoding): &