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抓取网页时字符集转换问题处理方案分享
Jun 19 Python
python获取mp3文件信息的方法
Jun 15 Python
Python使用Mechanize模块编写爬虫的要点解析
Mar 31 Python
python实现的二叉树定义与遍历算法实例
Jun 30 Python
Python实现一个简单的验证码程序
Nov 03 Python
使用pycharm设置控制台不换行的操作方法
Jan 19 Python
对Python Class之间函数的调用关系详解
Jan 23 Python
python实现弹跳小球
May 13 Python
Python空间数据处理之GDAL读写遥感图像
Aug 01 Python
python画微信表情符的实例代码
Oct 09 Python
python Paramiko使用示例
Sep 21 Python
python产生模拟数据faker库的使用详解
Nov 04 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编程最快明白》第二讲 数字、浮点、布尔型、字符串和数组
2010/11/01 PHP
jQuery EasyUI API 中文文档 - Menu菜单
2011/10/03 Javascript
js 关键词高亮(根据ID/tag高亮关键字)案例介绍
2013/01/21 Javascript
node.js WEB开发中图片验证码的实现方法
2014/06/03 Javascript
JS实现可缩放、拖动、关闭和最小化的浮动窗口完整实例
2015/03/04 Javascript
jQuery插件PageSlide实现左右侧栏导航菜单
2015/04/12 Javascript
点评js异步加载的4种方式
2015/12/22 Javascript
如何使用PHP+jQuery+MySQL实现异步加载ECharts地图数据(附源码下载)
2016/02/23 Javascript
Vue.js实现表格渲染的方法
2018/09/07 Javascript
关于layui 弹出层一闪而过就消失的解决方法
2019/09/09 Javascript
js实现简单掷骰子效果
2019/10/24 Javascript
Vue element-ui父组件控制子组件的表单校验操作
2020/07/17 Javascript
jquery实现简单拖拽效果
2020/07/20 jQuery
VUE-ElementUI 自定义Loading图操作
2020/11/11 Javascript
Python中使用urllib2防止302跳转的代码例子
2014/07/07 Python
Python的迭代器和生成器使用实例
2015/01/14 Python
详解Python 模拟实现生产者消费者模式的实例
2017/08/10 Python
小米5s微信跳一跳小程序python源码
2018/01/08 Python
pytorch + visdom 处理简单分类问题的示例
2018/06/04 Python
浅析Python四种数据类型
2018/09/26 Python
解决python opencv无法显示图片的问题
2018/10/28 Python
python selenium firefox使用详解
2019/02/26 Python
解决python flask中config配置管理的问题
2019/07/26 Python
浅谈Python的方法解析顺序(MRO)
2020/03/05 Python
遮罩层 + Iframe实现界面自动显示的示例代码
2020/04/26 HTML / CSS
Opodo意大利:欧洲市场上领先的在线旅行社
2019/10/24 全球购物
编辑硕士自荐信范文
2013/11/27 职场文书
旅行社各个岗位职责
2014/03/15 职场文书
一年级数学上册复习计划
2015/01/17 职场文书
商务宴请邀请函范文
2015/02/02 职场文书
党员个人年度总结
2015/02/14 职场文书
2015年度招聘工作总结
2015/05/28 职场文书
2019年怎样才能撰写出优秀的自荐信
2019/03/25 职场文书
浅谈JS和Nodejs中的事件驱动
2021/05/05 NodeJs
解决goland 导入项目后import里的包报红问题
2021/05/06 Golang
「海贼王」112.9万粉丝纪念图标公布
2022/03/21 日漫