python实现大文本文件分割


Posted in Python onJuly 22, 2019

本文实例为大家分享了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')

源码地址

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python操作CouchDB的方法
Oct 08 Python
Python合并两个字典的常用方法与效率比较
Jun 17 Python
深入剖析Python的爬虫框架Scrapy的结构与运作流程
Jan 20 Python
Python 字典与字符串的互转实例
Jan 13 Python
Python3随机漫步生成数据并绘制
Aug 27 Python
我用Python抓取了7000 多本电子书案例详解
Mar 25 Python
PyQt 图解Qt Designer工具的使用方法
Aug 06 Python
python线程定时器Timer实现原理解析
Nov 30 Python
Python实现括号匹配方法详解
Feb 10 Python
Python3实现建造者模式的示例代码
Jun 28 Python
Django中如何用xlwt生成表格的方法步骤
Jan 31 Python
总结Python连接CS2000的详细步骤
Jun 23 Python
python plotly绘制直方图实例详解
Jul 22 #Python
python分割一个文本为多个文本的方法
Jul 22 #Python
在linux系统下安装python librtmp包的实现方法
Jul 22 #Python
django搭建项目配置环境和创建表过程详解
Jul 22 #Python
对python中基于tcp协议的通信(数据传输)实例讲解
Jul 22 #Python
Django使用中间键实现csrf认证详解
Jul 22 #Python
python Tcp协议发送和接收信息的例子
Jul 22 #Python
You might like
php 文件状态缓存带来的问题
2008/12/14 PHP
QueryPath PHP 中的jQuery
2010/04/11 PHP
mysql查找删除重复数据并只保留一条实例详解
2016/09/24 PHP
HTTP头隐藏PHP版本号实现过程解析
2020/12/09 PHP
js宝典学习笔记(上)
2007/01/10 Javascript
JS Excel读取和写入操作(模板操作)实现代码
2010/04/11 Javascript
基于jQuery的history历史记录插件
2010/12/11 Javascript
js将当前时间格式转换成时间搓(自写)
2013/09/26 Javascript
JavaScript中DOM详解
2015/04/13 Javascript
jQuery实现下拉框选择图片功能实例
2015/08/08 Javascript
BootStrap注意事项小结(五)表单
2017/03/10 Javascript
JS关于刷新页面的相关总结
2018/05/09 Javascript
iview的table组件自带的过滤器实现
2019/07/12 Javascript
node省市区三级数据性能测评实例分析
2019/11/06 Javascript
JavaScript设计模式之门面模式原理与实现方法分析
2020/03/09 Javascript
[03:09]DOTA2亚洲邀请赛 LGD战队出场宣传片
2015/02/07 DOTA
Python的条件语句与运算符优先级详解
2015/10/13 Python
Windows安装Python、pip、easy_install的方法
2017/03/05 Python
创建pycharm的自定义python模板方法
2018/05/23 Python
python利用插值法对折线进行平滑曲线处理
2018/12/25 Python
python+pyqt5实现24点小游戏
2019/01/24 Python
Python爬虫抓取技术的一些经验
2019/07/12 Python
Django模板导入母版继承和自定义返回Html片段过程解析
2019/09/18 Python
使用Filters滤镜弥补CSS3的跨浏览器问题以及兼容低版本IE
2013/01/23 HTML / CSS
英国在线药房和在线医生:LloydsPharmacy
2019/10/21 全球购物
2019年.net常见面试问题
2012/02/12 面试题
Shell编程面试题
2012/05/30 面试题
口头翻译求职人自荐信
2013/12/07 职场文书
2014年大学生自我评价
2014/01/19 职场文书
计划生育证明格式范本
2014/09/12 职场文书
爱心助学感谢信
2015/01/21 职场文书
计划生育个人总结
2015/03/02 职场文书
2015年公务员试用期工作总结
2015/05/28 职场文书
婚育证明格式
2015/06/17 职场文书
Python-OpenCV实现图像缺陷检测的实例
2021/06/11 Python
全面盘点MySQL中的那些重要日志文件
2021/11/27 MySQL