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 相关文章推荐
改进Django中的表单的简单方法
Jul 17 Python
在Linux系统上通过uWSGI配置Nginx+Python环境的教程
Dec 25 Python
Python中列表、字典、元组数据结构的简单学习笔记
Mar 20 Python
Python之str操作方法(详解)
Jun 19 Python
Python中常见的异常总结
Feb 20 Python
python如何统计序列中元素
Jul 31 Python
python 简单照相机调用系统摄像头实现方法 pygame
Aug 03 Python
Python的条件表达式和lambda表达式实例
Jan 31 Python
python实现大量图片重命名
Mar 23 Python
opencv3/C++实现视频背景去除建模(BSM)
Dec 11 Python
opencv python如何实现图像二值化
Feb 03 Python
Python configparser模块常用方法解析
May 22 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
PHP5.5和之前的版本empty函数的不同之处
2014/06/13 PHP
php简单图像创建入门实例
2015/06/10 PHP
php自定义函数实现汉字转换utf8编码的方法
2016/09/29 PHP
实例讲解YII2中多表关联的使用方法
2017/07/21 PHP
PHP过滤器 filter_has_var() 函数用法实例分析
2020/04/23 PHP
firefox firebug中文入门教程 脚本之家新年特别版
2010/01/02 Javascript
浅析nodejs实现Websocket的数据接收与发送
2015/11/19 NodeJs
Prototype框架详解
2015/11/25 Javascript
jQuery checkbox选中问题之prop与attr注意点分析
2016/11/15 Javascript
jQuery EasyUI 获取tabs的实例解析
2016/12/06 Javascript
Bootstrap基本组件学习笔记之按钮组(8)
2016/12/07 Javascript
React Native时间转换格式工具类分享
2017/10/24 Javascript
Vue中的Vux配置指南
2017/12/08 Javascript
浅谈React Native Flexbox布局(小结)
2018/01/08 Javascript
Angular PWA使用的Demo示例
2019/01/31 Javascript
vue实现淘宝购物车功能
2020/04/20 Javascript
[53:10]完美世界DOTA2联赛决赛日 FTD vs GXR 第二场 11.08
2020/11/11 DOTA
Python制作CSDN免积分下载器
2015/03/10 Python
python判断windows系统是32位还是64位的方法
2015/05/11 Python
Python使用reportlab将目录下所有的文本文件打印成pdf的方法
2015/05/20 Python
python数据类型判断type与isinstance的区别实例解析
2017/10/31 Python
python实现转盘效果 python实现轮盘抽奖游戏
2019/01/22 Python
Python之time模块的时间戳,时间字符串格式化与转换方法(13位时间戳)
2019/08/12 Python
Python如何用wx模块创建文本编辑器
2020/06/07 Python
python如何输出反斜杠
2020/06/18 Python
pytorch实现查看当前学习率
2020/06/24 Python
Jupyter notebook命令和编辑模式常用快捷键汇总
2020/11/17 Python
英国在线自行车商店:Evans Cycles
2016/09/26 全球购物
Expedia爱尔兰:酒店、机票、租车及廉价假期
2017/01/02 全球购物
1688平价精选商城:阿里集团旗下,工厂出厂价格直销
2017/04/24 全球购物
珍惜资源的建议书
2014/08/26 职场文书
2014年高数考试作弊检讨书
2014/12/14 职场文书
2014年保险业务员工作总结
2014/12/23 职场文书
《所见》教学反思
2016/02/23 职场文书
六年级作文之自救
2019/12/19 职场文书
OpenCV图像变换之傅里叶变换的一些应用
2021/07/26 Python