python实现按行切分文本文件的方法


Posted in Python onApril 18, 2016

本文实例讲述了python实现按行切分文本文件的方法。分享给大家供大家参考,具体如下:

python脚本利用shell命令来实现文本的操作, 这些命令大大减少了我们的代码量。

比如按行切分文件并返回切分后得到的文件列表,可以利用内建的split命令进行切分。为了返回得到的文件列表名,可以先将文件切分到自建的子目录中,然后通过os.listdir获取所有文件,再将这些文件移到上一级目录(即函数参数指定的新目录),删除自建子目录,最后返回该文件名列表。

代码如下,如发现问题欢迎指正:

# 创建新路径
def make_dirs(path):
  if not os.path.isdir(path):
    os.makedirs(path)
# 获取文件的行数
def get_total_lines(file_path):
  if not os.path.exists(file_path):
    return 0
  cmd = 'wc -l %s' % file_path
  return int(os.popen(cmd).read().split()[0])
# 函数split_file_by_row: 按行切分文件
# filepath: 切分的目标文件
# new_filepath: 生成新文件的路径
# row_cnt: 每个文件最多包含几行
# suffix_type: 新文件后缀类型,如两位字母或数字
# return: 切分后的文件列表
def split_file_by_row(filepath, new_filepath, row_cnt, suffix_type='-d'):
  tmp_dir = "/split_file_by_row/"
  make_dirs(new_filepath)
  make_dirs(new_filepath+tmp_dir)
  total_rows = get_total_lines(filepath)
  file_cnt = int(math.ceil(total_rows*1.0/row_cnt))
    command = "split -l%d -a2 %s %s %s" % (row_cnt, suffix_type, filepath, new_filepath+tmp_dir)
    os.system(command)
    filelist = os.listdir(new_filepath+tmp_dir)
  command = "mv %s/* %s"%(new_filepath+tmp_dir, new_filepath)
  os.system(command)
  command = "rm -r %s"%(new_filepath+tmp_dir)
  os.system(command)
  return [new_filepath+fn for fn in filelist]

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python常见的格式化输出小结
Dec 15 Python
python中virtualenvwrapper安装与使用
May 20 Python
Sanic框架应用部署方法详解
Jul 18 Python
pyqt 实现QlineEdit 输入密码显示成圆点的方法
Jun 24 Python
Pandas之MultiIndex对象的示例详解
Jun 25 Python
Python Pandas分组聚合的实现方法
Jul 02 Python
详解Selenium+PhantomJS+python简单实现爬虫的功能
Jul 14 Python
python+tkinter实现学生管理系统
Aug 20 Python
Python实现投影法分割图像示例(一)
Jan 17 Python
tensorboard实现同时显示训练曲线和测试曲线
Jan 21 Python
Python应用实现双指数函数及拟合代码实例
Jun 19 Python
python利用platform模块获取系统信息
Oct 09 Python
Python获取linux主机ip的简单实现方法
Apr 18 #Python
Python实现递归遍历文件夹并删除文件
Apr 18 #Python
Python简单实现TCP包发送十六进制数据的方法
Apr 16 #Python
Python出现segfault错误解决方法
Apr 16 #Python
Python判断值是否在list或set中的性能对比分析
Apr 16 #Python
python中zip()方法应用实例分析
Apr 16 #Python
Python使用logging结合decorator模式实现优化日志输出的方法
Apr 16 #Python
You might like
php getimagesize 上传图片的长度和宽度检测代码
2010/05/15 PHP
使用PHP备份MYSQL数据的多种方法
2014/01/15 PHP
php中实现记住密码下次自动登录的例子
2014/11/06 PHP
PHP批量去除BOM头内容信息代码
2016/03/11 PHP
PHP编程获取图片的主色调的方法【基于Imagick扩展】
2017/08/02 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
2017/11/17 PHP
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
ext实现完整的登录代码
2008/08/08 Javascript
js 手机号码合法性验证代码集合
2012/09/29 Javascript
a标签的href与onclick事件的区别详解
2014/11/12 Javascript
jquery计算鼠标和指定元素之间距离的方法
2015/06/26 Javascript
javascript实现对表格元素进行排序操作
2015/11/18 Javascript
详解JS中Array对象扩展与String对象扩展
2016/01/07 Javascript
原生javascript实现自动更新的时间日期
2016/02/12 Javascript
Kindeditor在线文本编辑器如何过滤HTML
2016/04/14 Javascript
jQuery解决浏览器兼容性问题案例分析
2016/04/15 Javascript
Javascript基础之数组的使用
2016/05/13 Javascript
基于Three.js插件制作360度全景图
2016/11/29 Javascript
简单实现jQuery手风琴效果
2017/08/18 jQuery
使用vs code开发Nodejs程序的使用方法
2017/09/21 NodeJs
Nodejs实现文件上传的示例代码
2017/09/26 NodeJs
vue路由导航守卫和请求拦截以及基于node的token认证的方法
2019/04/07 Javascript
python利用elaphe制作二维条形码实现代码
2012/05/25 Python
Python基于动态规划算法计算单词距离
2015/07/25 Python
python实现红包裂变算法
2016/02/16 Python
Python常用内置模块之xml模块(详解)
2017/05/23 Python
NumPy.npy与pandas DataFrame的实例讲解
2018/07/09 Python
树莓派+摄像头实现对移动物体的检测
2019/06/22 Python
在django中form的label和verbose name的区别说明
2020/05/20 Python
为2021年的第一场雪锦上添花:用matplotlib绘制雪花和雪景
2021/01/05 Python
python 实现有道翻译功能
2021/02/26 Python
中国综合性网上购物商城:当当(网上卖书起家)
2016/11/16 全球购物
idealfit英国:世界领先的女性健身用品和运动衣物品牌
2017/11/25 全球购物
水产养殖学应届生求职信
2013/09/29 职场文书
教师工作能力自我评价
2015/03/04 职场文书
学习心理学心得体会
2016/01/22 职场文书