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 相关文章推荐
下载给定网页上图片的方法
Feb 18 Python
python实现在sqlite动态创建表的方法
May 08 Python
python3实现读取chrome浏览器cookie
Jun 19 Python
Python爬取网易云音乐热门评论
Mar 31 Python
使用python实现个性化词云的方法
Jun 16 Python
python numpy函数中的linspace创建等差数列详解
Oct 13 Python
python使用递归的方式建立二叉树
Jul 03 Python
python画图把时间作为横坐标的方法
Jul 07 Python
python中matplotlib条件背景颜色的实现
Sep 02 Python
Python脚本操作Excel实现批量替换功能
Nov 20 Python
tensorflow 变长序列存储实例
Jan 20 Python
Django 解决由save方法引发的错误
May 21 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添加文章时生成静态HTML文章的实现代码
2013/02/17 PHP
ThinkPHP查询中的魔术方法简述
2014/06/25 PHP
php将字符串全部转换成大写或者小写的方法
2015/03/17 PHP
PHP如何将log信息写入服务器中的log文件
2015/07/29 PHP
PHP实现关键字搜索后描红功能示例
2019/07/03 PHP
PHP下载文件函数与用法示例
2019/09/27 PHP
javascript iframe编程相关代码
2009/12/28 Javascript
JQuery跨Iframe选择实现代码
2010/08/19 Javascript
js面向对象 多种创建对象方法小结
2012/05/21 Javascript
uploadify 3.0 详细使用说明
2012/06/18 Javascript
jquery实现每个数字上都带进度条的幻灯片
2013/02/20 Javascript
JSON无限折叠菜单编写实例
2013/12/16 Javascript
一个检测表单数据的JavaScript实例
2014/10/31 Javascript
深入理解JavaScript系列(19):求值策略(Evaluation strategy)详解
2015/03/05 Javascript
javascript原型模式用法实例详解
2015/06/04 Javascript
jquery调整表格行tr上下顺序实例讲解
2016/01/09 Javascript
最简单纯JavaScript实现Tab标签页切换的方式(推荐)
2016/07/25 Javascript
EasyUI Combobox设置默认值 获取text的方法
2016/11/28 Javascript
简单实现vue验证码60秒倒计时功能
2017/10/11 Javascript
详解vue-cli快速构建vue应用并实现webpack打包
2017/12/13 Javascript
jQuery选择器之基本过滤选择器用法实例分析
2019/02/19 jQuery
python脚本实现验证码识别
2018/06/07 Python
pygame实现俄罗斯方块游戏(对战篇1)
2019/10/29 Python
用python画一只可爱的皮卡丘实例
2019/11/21 Python
Python for i in range ()用法详解
2020/09/18 Python
python实现四人制扑克牌游戏
2020/04/22 Python
关于pycharm 切换 python3.9 报错 ‘HTMLParser‘ object has no attribute ‘unescape‘ 的问题
2020/11/24 Python
html5 datalist标签使用示例(自动完成组件)
2014/05/04 HTML / CSS
Smashbox英国官网:美国知名彩妆品牌
2017/11/13 全球购物
英国办公用品商店:Office Outlet
2018/04/04 全球购物
eDreams德国:南欧领先的在线旅游公司
2020/12/07 全球购物
元宵节晚会主持人串词
2014/03/25 职场文书
终止劳动合同协议书
2014/04/14 职场文书
后备干部推荐材料
2014/12/24 职场文书
pytorch中的numel函数用法说明
2021/05/13 Python
Linux、ubuntu系统下查看显卡型号、显卡信息详解
2022/04/07 Servers