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 元组(Tuple)操作详解
Mar 11 Python
Python自动调用IE打开某个网站的方法
Jun 03 Python
python黑魔法之参数传递
Feb 12 Python
Python3使用正则表达式爬取内涵段子示例
Apr 22 Python
ubuntu16.04制作vim和python3的开发环境
Sep 23 Python
python判断输入日期为第几天的实例
Nov 13 Python
Python多进程写入同一文件的方法
Jan 14 Python
python pandas 时间日期的处理实现
Jul 30 Python
python redis存入字典序列化存储教程
Jul 16 Python
Python Selenium自动化获取页面信息的方法
Aug 31 Python
详解pytorch中squeeze()和unsqueeze()函数介绍
Sep 03 Python
Python中Qslider控件实操详解
Feb 20 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
给WordPress中的留言加上楼层号的PHP代码实例
2015/12/14 PHP
thinkPHP框架乐观锁和悲观锁实例分析
2019/10/30 PHP
用javascript getComputedStyle获取和设置style的原理
2008/10/10 Javascript
cookie 最近浏览记录(中文escape转码)具体实现
2013/06/08 Javascript
浅析JavaScript中的类型和对象
2013/11/29 Javascript
Java File类的常用方法总结
2015/03/18 Javascript
jQuery简单验证上传文件大小及类型的方法
2016/06/02 Javascript
js实现浏览器倒计时跳转页面效果
2016/08/12 Javascript
使用UrlConnection实现后台模拟http请求的简单实例
2017/01/04 Javascript
微信端开发--登录小程序步骤
2017/01/11 Javascript
AngularJS 异步解决实现方法
2017/06/12 Javascript
详解Vue 中 extend 、component 、mixins 、extends 的区别
2017/12/20 Javascript
Vue路由切换时的左滑和右滑效果示例
2018/05/29 Javascript
关于Vue组件库开发详析
2018/07/01 Javascript
详解ES6中的 Set Map 数据结构学习总结
2018/11/06 Javascript
详解用JS添加和删除class类名
2019/03/25 Javascript
js实现旋转的星空效果
2019/11/01 Javascript
加速vue组件渲染之性能优化
2020/04/09 Javascript
微信小程序连续签到7天积分获得功能的示例代码
2020/08/20 Javascript
Python列表(list)常用操作方法小结
2015/02/02 Python
在Python下进行UDP网络编程的教程
2015/04/29 Python
python之Character string(实例讲解)
2017/09/25 Python
Python去除、替换字符串空格的处理方法
2018/04/01 Python
Python Django框架模板渲染功能示例
2019/11/08 Python
使用Python的networkx绘制精美网络图教程
2019/11/21 Python
Python实现代码块儿折叠
2020/04/15 Python
python IDLE添加行号显示教程
2020/04/25 Python
如何实现一个python函数装饰器(Decorator)
2020/10/12 Python
德国知名健康零食网上商店:Seeberger
2017/07/27 全球购物
台湾专柜女包:KINAZ
2019/12/26 全球购物
养殖行业的创业计划书
2014/01/05 职场文书
联谊活动总结
2014/08/28 职场文书
医院保洁员岗位职责
2015/02/13 职场文书
2015年党日活动总结范文
2015/03/25 职场文书
毕业生的自我鉴定表范文
2019/05/16 职场文书
MySQL获取所有分类的前N条记录
2021/05/07 MySQL