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和C语言混编的几种方式(推荐)
Sep 27 Python
python3爬取淘宝信息代码分析
Feb 10 Python
Python OpenCV处理图像之图像像素点操作
Jul 10 Python
Python3.5内置模块之os模块、sys模块、shutil模块用法实例分析
Apr 27 Python
Python Flask 搭建微信小程序后台详解
May 06 Python
Python绘制热力图示例
Sep 27 Python
python numpy中cumsum的用法详解
Oct 17 Python
python 3.8.3 安装配置图文教程
May 21 Python
Python3实现英文字母转换哥特式字体实例代码
Sep 01 Python
社区版pycharm创建django项目的方法(pycharm的newproject左侧没有项目选项)
Sep 23 Python
matplotlib运行时配置(Runtime Configuration,rc)参数rcParams解析
Jan 05 Python
matplotlib阶梯图的实现(step())
Mar 02 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 数组遍历顺序理解
2009/09/09 PHP
PHP通用检测函数集合
2011/02/08 PHP
基于php缓存的详解
2013/05/15 PHP
php基于dom实现读取图书xml格式数据的方法
2017/02/03 PHP
PHP+MySQL使用mysql_num_rows实现模糊查询图书信息功能
2018/05/31 PHP
PHP文件上传小程序 适合初学者学习!
2019/05/23 PHP
Yii框架函数简单用法分析
2019/09/09 PHP
PHP实现常用排序算法的方法
2020/02/05 PHP
PHP延迟静态绑定使用方法实例解析
2020/09/05 PHP
javascript dom代码应用 简单的相册[firefox only]
2010/06/12 Javascript
JavaScript中链式调用之研习
2011/04/07 Javascript
setInterval与clearInterval的使用示例代码
2014/01/28 Javascript
JS操作JSON方法总结(推荐)
2016/06/14 Javascript
canvas滤镜效果实现代码
2017/02/06 Javascript
Bootstrap栅格系统使用方法及页面调整变形的解决方法
2017/03/10 Javascript
JavaScript引用类型RegExp基本用法详解
2018/08/09 Javascript
微信小程序 MinUI组件库系列之badge徽章组件示例
2018/08/20 Javascript
小程序最新获取用户昵称和头像的方法总结
2019/09/23 Javascript
js实现随机div颜色位置 类似满天星效果
2019/10/24 Javascript
举例详解Python中threading模块的几个常用方法
2015/06/18 Python
Python机器学习logistic回归代码解析
2018/01/17 Python
python中format()函数的简单使用教程
2018/03/14 Python
Python利用正则表达式实现计算器算法思路解析
2018/04/25 Python
Python使用googletrans报错的解决方法
2018/09/25 Python
对Pandas MultiIndex(多重索引)详解
2018/11/16 Python
Python3.5 Pandas模块之Series用法实例分析
2019/04/23 Python
python sklearn常用分类算法模型的调用
2019/10/16 Python
使用python快速在局域网内搭建http传输文件服务的方法
2019/11/14 Python
浅析python内置模块collections
2019/11/15 Python
css3.0 图形构成实例练习二
2013/03/19 HTML / CSS
详解通过变换矩阵实现canvas的缩放功能
2019/01/14 HTML / CSS
程序设计HTML5 Canvas API
2013/04/08 HTML / CSS
手工制作的豪华英式沙发和沙发床:Willow & Hall
2019/05/03 全球购物
美国运动鞋类和服装零售连锁店:Shoe Palace
2019/08/13 全球购物
学校个人对照检查材料
2014/08/26 职场文书
2015年志愿者服务工作总结
2015/04/20 职场文书