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中使用PIPE操作Linux管道
Feb 04 Python
Python中处理字符串之endswith()方法的使用简介
May 18 Python
简单理解Python中的装饰器
Jul 31 Python
分享一下Python 开发者节省时间的10个方法
Oct 02 Python
Python进行数据提取的方法总结
Aug 22 Python
在Python中执行系统命令的方法示例详解
Sep 14 Python
python select.select模块通信全过程解析
Sep 20 Python
Python numpy生成矩阵、串联矩阵代码分享
Dec 04 Python
python入门前的第一课 python怎样入门
Mar 06 Python
python多任务及返回值的处理方法
Jan 22 Python
Python进行特征提取的示例代码
Oct 15 Python
jupyter notebook保存文件默认路径更改方法汇总(亲测可以)
Jun 09 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
async和DOM Script文件加载比较
2014/07/20 PHP
Laravel 自动转换长整型雪花 ID 为字符串的实现
2020/10/27 PHP
使用TextRange获取输入框中光标的位
2006/10/14 Javascript
Ucren Virtual Desktop V2.0
2006/11/07 Javascript
javascript学习网址备忘
2007/05/29 Javascript
获取焦点时,利用js定时器设定时间执行动作
2010/04/02 Javascript
深入领悟JavaScript中的面向对象
2013/11/18 Javascript
三种方式获取XMLHttpRequest对象
2014/04/21 Javascript
jquery text()方法取标签中的文本
2014/07/25 Javascript
最流行的Node.js精简型和全栈型开发框架介绍
2015/02/26 Javascript
详解JavaScript中的客户端消息框架设计原理
2015/06/24 Javascript
基于js实现投票的实例代码
2015/08/04 Javascript
JavaScript setTimeout使用闭包功能实现定时打印数值
2015/12/18 Javascript
理解javascript模块化
2016/03/28 Javascript
详解Python中logging日志模块在多进程环境下的使用
2016/12/26 Javascript
一步步教你利用Canvas对图片进行处理
2017/09/19 Javascript
vue2.x select2 指令封装详解
2017/10/12 Javascript
在Layui中操作数据表格,给指定单元格添加事件示例
2019/10/26 Javascript
[48:11]完美世界DOTA2联赛 Magma vs GXR 第二场 11.07
2020/11/10 DOTA
python函数缺省值与引用学习笔记分享
2013/02/10 Python
Python 爬虫模拟登陆知乎
2016/09/23 Python
用Python设计一个经典小游戏
2017/05/15 Python
Python 异常处理的实例详解
2017/09/11 Python
wxPython实现窗口用图片做背景
2018/04/25 Python
python2 与 python3 实现共存的方法
2018/07/12 Python
python监控nginx端口和进程状态
2019/09/06 Python
python 下 CMake 安装配置 OPENCV 4.1.1的方法
2019/09/30 Python
python Yaml、Json、Dict之间的转化
2020/10/19 Python
纯HTML+CSS3制作导航菜单(附源码)
2013/04/24 HTML / CSS
节省高达65%的城市景点费用:Go City
2019/07/06 全球购物
DataList 能否分页,请问如何实现?
2015/05/03 面试题
大学生两会学习心得体会
2014/03/10 职场文书
平安工地建设方案
2014/05/06 职场文书
品牌转让协议书
2014/08/20 职场文书
刑事法律意见书
2015/06/04 职场文书
Javascript使用integrity属性进行安全验证
2021/11/07 Javascript