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 splitlines使用技巧
Sep 06 Python
Python中replace方法实例分析
Aug 20 Python
python3利用Dlib19.7实现人脸68个特征点标定
Feb 26 Python
对Python3中的input函数详解
Apr 22 Python
python 读取.csv文件数据到数组(矩阵)的实例讲解
Jun 14 Python
Django2.1.3 中间件使用详解
Nov 26 Python
Python assert语句的简单使用示例
Jul 28 Python
面向对象学习之pygame坦克大战
Sep 11 Python
Kmeans均值聚类算法原理以及Python如何实现
Sep 26 Python
python实现图片,视频人脸识别(opencv版)
Nov 18 Python
next在python中返回迭代器的实例方法
Dec 15 Python
python解决OpenCV在读取显示图片的时候闪退的问题
Feb 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 DataGrid 实现代码
2009/08/12 PHP
使用php清除bom示例
2014/03/03 PHP
php数组键名技巧小结
2015/02/17 PHP
非常经典的PHP文件上传类分享
2016/05/15 PHP
php引用和拷贝的区别知识点总结
2019/09/23 PHP
PHP生成图表pChart的示例解析
2020/07/31 PHP
10个基于jQuery或JavaScript的WYSIWYG 编辑器整理
2010/05/06 Javascript
Javascript学习笔记一 之 数据类型
2010/12/15 Javascript
jQuery之字体大小的设置方法
2014/02/27 Javascript
调试JavaScript中正则表达式中遇到的问题
2015/01/27 Javascript
jQuery实现提交按钮点击后变成正在处理字样并禁止点击的方法
2015/03/24 Javascript
基于jQuery实现选取月份插件附源码下载
2015/12/28 Javascript
高效利用Angular中内置服务$http、$location等
2016/03/22 Javascript
简介EasyUI datagrid editor combogrid搜索框的实现
2016/04/01 Javascript
jQuery Easyui使用(一)之可折叠面板的布局手风琴菜单
2016/08/17 Javascript
新手学习前端之js模仿淘宝主页网站
2016/10/31 Javascript
bootstrap-datetimepicker实现只显示到日期的方法
2016/11/25 Javascript
Angular实现图片裁剪工具ngImgCrop实践
2017/08/17 Javascript
JS实现十分钟倒计时代码实例
2018/10/18 Javascript
微信小程序模板template简单用法示例
2018/12/04 Javascript
分析python切片原理和方法
2017/12/19 Python
使用python存储网页上的图片实例
2018/05/22 Python
Python OpenCV处理图像之图像直方图和反向投影
2018/07/10 Python
详解python如何在django中为用户模型添加自定义权限
2018/10/15 Python
python用插值法绘制平滑曲线
2021/02/19 Python
Django实现微信小程序的登录验证功能并维护登录态
2019/07/04 Python
pycharm重命名文件的方法步骤
2019/07/29 Python
wxPython电子表格功能wx.grid实例教程
2019/11/19 Python
python将dict中的unicode打印成中文实例
2020/05/11 Python
办公室主任岗位职责
2013/11/08 职场文书
个人近期表现材料
2014/02/11 职场文书
中学生社会实践活动总结
2014/07/03 职场文书
2014年教师节讲话稿5篇
2014/09/10 职场文书
2015年敬老月活动总结
2015/03/27 职场文书
2015小学新教师个人工作总结
2015/10/14 职场文书
SpringBoot项目部署到阿里云服务器的实现步骤
2022/06/28 Java/Android