昨天遇到了一个需求,需要将txt文档按行分割,并指定了行数,

最近在用python,就在网上搜了一下,在参考了http://blog.csdn.net/zhang_red/article/details/9055965这个帖子后,准备自己改一下

发现原帖代码似乎有点问题,改了下代码如下:

# -*- coding: utf-8 -*-
import osclass SplitFiles():"""按行分割文件"""def __init__(self, file_name, line_count=200):"""初始化要分割的源文件名和分割后的文件行数"""self.file_name = file_nameself.line_count = line_countdef split_file(self):if self.file_name and os.path.exists(self.file_name):try:with open(self.file_name) as f:  # 使用with读文件temp_count = 0temp_content = []part_num = 1for line in f:if temp_count < self.line_count:temp_count += 1else:self.write_file(part_num, temp_count, temp_content)part_num += 1temp_count = 1temp_content = []temp_content.append(line)else:  # 正常结束循环后将剩余的内容写入新文件中
                        self.write_file(part_num, temp_count, temp_content)except IOError as err:print(err)else:print("%s is not a validate file" % self.file_name)def get_part_file_name(self, part_num, temp_count):""""获取分割后的文件名称:在源文件相同目录下建立临时文件夹temp_part_file,然后将分割后的文件放到该路径下"""temp_path = os.path.dirname(self.file_name)  # 获取文件的路径(不含文件名)temp_name = os.path.splitext(os.path.basename(self.file_name))[0]part_file_name = temp_path + os.sep + temp_nameif not os.path.exists(part_file_name):  # 如果临时目录不存在则创建
            os.makedirs(part_file_name)part_file_name += os.sep + temp_name + "_part" + str(part_num) + "_"+ str(temp_count) + ".txt"return part_file_namedef write_file(self, part_num, temp_count, *line_content):"""将按行分割后的内容写入相应的分割文件中"""print temp_countpart_file_name = self.get_part_file_name(part_num, temp_count)print(line_content)try:with open(part_file_name, "w") as part_file:part_file.writelines(line_content[0])except IOError as err:print(err)if __name__ == "__main__":sf = SplitFiles(r"/Users/xxx/目标文档.txt", 100000)sf.split_file()

代码将txt文档每10W行,进行分割,达到了预期目标。

就在我打算写个博客记录时,发现了更好用的东东,命令行

linux或osx可用,

命令行

wc -l 目标文本.txt

用来统计文本共有多少行

split -l 100000 目标文本.txt 目标文本part

将目标文本切割  每100000一个文件  文件前缀名为目标文本part

转载于:https://www.cnblogs.com/tianxiaozz/p/7219722.html

将txt文档按行分割相关推荐

  1. python的txt导入数据库_python将txt文档每行内容循环插入数据库的方法

    如下所示: import pymysql import time import re def get_raw_label(rece): re1 = r'"([\s\S]*?)": ...

  2. C语言 读取txt文档按行读取到新的txt文档

    如下图data.txt,需要把数据按17行读取到自动命名新建的txt文档里: 1-17行     1.txt 18-34行   2.txt -- #include <stdio.h> #i ...

  3. 怎么退出python命令行cd找到txt文档_《python怎么读取txt文件》

    python怎么创建一个txt文件 python怎么创建txt文件的方法. 如下参考: 1.首用内置的空闲编辑器编辑(单击并选择copy),如下图所示. 2.您可以下载记事本和其他编辑软件,以支持多种 ...

  4. ※ 将一个txt文档按\n格式分割成多个txt

    ※ 将一个txt文档按\n格式分割成多个txt 原始文档格式为: # -*- coding: utf-8 -*- """ Created on Mon May 20 15 ...

  5. python处理图片文件_python 学习(二)处理图片、TXT文档

    一.尝试实现场景:将一个txt文档内容读到程序的数组内 1.新建一个文档 array.txt,写入内容 ,如: 2.使用命令行读取: 1)在上述新建文档位置相同目录下打开命令提示窗 2)打开文件,读入 ...

  6. 教你快速将多个TXT文档合并成一个多方法 手工方法无需软件

    方法多种多样这里我给大家把我知道的方法进行下总结 方法一: 有文档1.txt.2.txt.3.txt,在demo目录下(目录必须是英文) 进入该目录,按住shift,点击鼠标右键,选择"在此 ...

  7. 【Unity3D读取数据】(一)Txt文档操作(创建、读取、写入、修改)

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有 ...

  8. PHP如何读取txt文档域名集,并且生成数组/随机显示一个

    最近有朋友反馈我一个问题看我是否可以帮忙解决:需求就是网页需要跳转代码,用PHP写,读取一个域名集合包(也就是TXT文档),里面方着很多域名,让每访问一次随机跳转一个域名,怕是违法应用,没有答应帮忙, ...

  9. 利用python读取txt文档

    TXT_PATH='/data/benchmark/jingqu_30wan_1002/bm_files/remove100/result.txt' with open(TXT_PATH, 'r') ...

  10. NLP:两种方法(自定义函数和封装函数)实现提取两人对话内容(***分隔txt文档),并各自保存为txt文档

    NLP:两种方法(自定义函数和封装函数)实现提取两人对话内容(***分隔txt文档),并各自保存为txt文档 目录 问题探究 实现代码 问题探究 实现代码 f=open("niu.txt&q ...

最新文章

  1. Shell脚本读取命令行参数
  2. itoa函数的递归实现(二级指针实现)
  3. python里面的之前打过的记忆信息-python 中 __init__方法
  4. 算法导论9.2-3习题解答(寻找第i小的数)
  5. Stanford UFLDL教程 深度网络概览
  6. Intel Realsense pyrealsense rs.decimation_filter()类(通过使用具有特定内核大小的中值执行下采样)(抽取过滤器/抽取滤波器)
  7. django构建网页_如何使用Django构建照片供稿
  8. css 涟漪,CSS3水波涟漪动画定位样式如何制作
  9. NG Ng-content(内容映射)
  10. 孤岛惊魂5服务器稳定吗,这才是《孤岛惊魂5》真正的“最低画质”
  11. 关于/etc/init.d/nfs脚本解读中的疑问解答
  12. Java 集合系列18之 Iterator和Enumeration比较
  13. 会议及作用篇--项目管理(十三)
  14. 泰坦尼克号电影 完整字幕 中英文对比 完整版
  15. 杜凯杰教学数据分析:python 图片爬取 爬取各校校花图片
  16. 使用 SAP UI5 Smart Chart 控件轻松绘制十数种不同类型的专业图表试读版
  17. 水溶性富勒醇/羟基化富勒烯(Fullerenols)主要成分碳、氧、氢
  18. 物联网应用技术学习内容及就业前景
  19. CSS经常会用到的属性
  20. cordova-plugin-unionpay

热门文章

  1. Oliver运维管理系统之一庐山真面目
  2. redis 字符串类型原子性实现方案与memcached-cas原子性性能比较
  3. Oracle根据月份获取其是哪个季度
  4. 【原】iOS触摸事件深度解析
  5. linux 忘记mysql密码的解决办法
  6. 使用DIDatepicker
  7. asp.net连接access数据库两种方法
  8. Cannot declare member function ...to have static linkage错误
  9. 键盘拆开重新安装步骤_机械键盘小白入门工具
  10. 如何删除mysql软链接,Linux中移除(删除)符号链接的命令