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 14 Python
linux平台使用Python制作BT种子并获取BT种子信息的方法
Jan 20 Python
Python爬取网页中的图片(搜狗图片)详解
Mar 23 Python
Python实现的科学计算器功能示例
Aug 04 Python
python logging重复记录日志问题的解决方法
Jul 12 Python
Python判断telnet通不通的实例
Jan 26 Python
Python面向对象总结及类与正则表达式详解
Apr 18 Python
Python实现字典按key或者value进行排序操作示例【sorted】
May 03 Python
Django生成PDF文档显示在网页上以及解决PDF中文显示乱码的问题
Jul 04 Python
mac安装python3后使用pip和pip3的区别说明
Sep 01 Python
python绘制趋势图的示例
Sep 17 Python
Python实现中英文全文搜索的示例
Dec 04 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
模拟xcopy的函数
2006/10/09 PHP
PHP 中英文混合排版中处理字符串常用的函数
2007/04/12 PHP
用php过滤危险html代码的函数
2008/07/22 PHP
php中DOMElement操作xml文档实例演示
2013/03/26 PHP
PHP7正式版测试,性能惊艳!
2015/12/08 PHP
PHP实现链表的定义与反转功能示例
2018/06/09 PHP
javascript 打印内容方法小结
2009/11/04 Javascript
jQuery+jsp下拉框联动获取本地数据的方法(附源码)
2015/12/03 Javascript
JS实现CheckBox复选框全选、不选或全不选功能
2020/07/28 Javascript
jquery实现具有收缩功能的垂直导航菜单
2016/02/16 Javascript
js滚动条平滑移动示例代码
2016/03/29 Javascript
使用jQuery实现WordPress中的Ctrl+Enter和@评论回复
2016/05/21 Javascript
EasyUI Datebox 日期验证之开始日期小于结束时间
2017/05/19 Javascript
详解React-Native解决键盘遮挡问题(Keyboard遮挡问题)
2017/07/13 Javascript
Thinkjs3新手入门之添加一个新的页面
2017/12/06 Javascript
原生js+ajax分页组件
2020/01/30 Javascript
JavaScript canvas绘制圆弧与圆形
2020/02/18 Javascript
[03:15]2014DOTA2国际邀请赛 专访国士无双信心满满
2014/07/12 DOTA
深入分析在Python模块顶层运行的代码引起的一个Bug
2014/07/04 Python
python实现的生成随机迷宫算法核心代码分享(含游戏完整代码)
2014/07/11 Python
Python socket.error: [Errno 98] Address already in use的原因和解决方法
2014/08/25 Python
浅谈Python 对象内存占用
2016/07/15 Python
Python实现的文本简单可逆加密算法示例
2017/05/18 Python
python 调用win32pai 操作cmd的方法
2017/05/28 Python
pandas 读取各种格式文件的方法
2018/06/22 Python
numpy.linspace 生成等差数组的方法
2018/07/02 Python
解决PyCharm的Python.exe已经停止工作的问题
2018/11/29 Python
赫里福德的一家乡村零售商店:Philip Morris & Son
2017/06/25 全球购物
为什么要有struct关键字
2012/05/08 面试题
主管竞聘书范文
2014/03/31 职场文书
小学教师师德师风个人整改措施
2014/09/18 职场文书
入党介绍人意见怎么写
2015/06/03 职场文书
教师师德工作总结2015
2015/07/22 职场文书
《乘法分配律》教学反思
2016/02/24 职场文书
小学生必读成语故事大全:送给暑假的你们
2019/07/09 职场文书
手把手教你怎么用Python实现zip文件密码的破解
2021/05/27 Python