python实现按行分割文件


Posted in Python onJuly 22, 2019

本文实例为大家分享了python实现按行分割文件的具体代码,供大家参考,具体内容如下

#!/usr/bin/env python
#--*-- coding:utf-8 --*--
 
import os
 
class SplitFiles():
 """按行分割文件"""
 
 def __init__(self, file_name, line_count=200):
 """初始化要分割的源文件名和分割后的文件行数"""
 self.file_name = file_name
 self.line_count = line_count
 
 def 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 = 0
  temp_content = []
  part_num = 1
  for line in f:
  if temp_count < self.line_count:
  temp_count += 1
  else :
  self.write_file(part_num, temp_content)
  part_num += 1
  temp_count = 1
  temp_content = []
  temp_content.append(line)
  else : # 正常结束循环后将剩余的内容写入新文件中
  self.write_file(part_num, 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_part_file,然后将分割后的文件放到该路径下"""
 temp_path = os.path.dirname(self.file_name) # 获取文件的路径(不含文件名)
 part_file_name = temp_path + "temp_part_file"
 if not os.path.exists(temp_path) : # 如果临时目录不存在则创建
 os.makedirs(temp_path)
 part_file_name += os.sep + "temp_file_" + str(part_num) + ".part"
 return part_file_name
 
 def write_file(self, part_num, *line_content):
 """将按行分割后的内容写入相应的分割文件中"""
 part_file_name = self.get_part_file_name(part_num)
 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"F:\multiple_thread_read_file.txt")
 sf.split_file()

小编再为大家分享一段代码:

将文本文件按照指定的行数分割成数个小的文本文件

#! /usr/bin/env python
# -*- coding: utf-8 -*-
 
LIMIT=1000
file_count=0
url_list=[]
 
with open("123.txt") as f:
 for line in f:
 url_list.append(line)
 if len(url_list)<LIMIT:
 continue
 #数据达到LIMIT
 file_name=str(file_count)+".txt"
 with open(file_name,'w') as file:
 for url in url_list[:-1]:
 #print(url)
 file.write(url)
 file.write(url_list[-1].strip())
 url_list=[]
 file_count+=1
if url_list:
 file_name=str(file_count)+".txt"
 with open(file_name,'w') as file:
 for url in url_list:
 file.write(url)
print('done')

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 类与元类的深度挖掘 II【经验】
May 06 Python
python爬虫实战之最简单的网页爬虫教程
Aug 13 Python
CentOS7下python3.7.0安装教程
Jul 30 Python
python numpy元素的区间查找方法
Nov 14 Python
Python语言快速上手学习方法
Dec 14 Python
啥是佩奇?使用Python自动绘画小猪佩奇的代码实例
Feb 20 Python
pygame实现非图片按钮效果
Oct 29 Python
python字符串反转的四种方法详解
Dec 02 Python
Pyqt5自适应布局实例
Dec 13 Python
python基于event实现线程间通信控制
Jan 13 Python
tensorflow 查看梯度方式
Feb 04 Python
python识别围棋定位棋盘位置
Jul 26 Python
python UDP(udp)协议发送和接收的实例
Jul 22 #Python
linux环境下Django的安装配置详解
Jul 22 #Python
python判断一个对象是否可迭代的例子
Jul 22 #Python
树莓派使用python-librtmp实现rtmp推流h264的方法
Jul 22 #Python
python实现大文件分割与合并
Jul 22 #Python
cProfile Python性能分析工具使用详解
Jul 22 #Python
python实现大文本文件分割
Jul 22 #Python
You might like
PHP定时自动生成静态HTML的实现代码
2010/06/20 PHP
PHP学习笔记之二
2011/01/17 PHP
一张表搞清楚php is_null、empty、isset的区别
2015/07/07 PHP
Yii基于数组和对象的Model查询技巧实例详解
2015/12/28 PHP
PHP 应用容器化以及部署方法
2018/02/12 PHP
javascript编程起步(第五课)
2007/01/10 Javascript
Javascript中的数学函数集合
2007/05/08 Javascript
用JS实现一个页面多个css样式实现
2008/05/29 Javascript
jquery 插件 web2.0分格的分页脚本,可用于ajax无刷新分页
2008/12/25 Javascript
firefox事件处理之自动查找event的函数(用于onclick=foo())
2010/08/05 Javascript
javaScript让文本框内的最后一个文字的后面获得焦点实现代码
2013/01/06 Javascript
原生js实现查找/添加/删除/指定元素的class
2013/04/12 Javascript
JavaScript中的迭代器和生成器详解
2014/10/29 Javascript
多种JQuery循环滚动文字图片效果代码
2020/06/23 Javascript
WebSocket+node.js创建即时通信的Web聊天服务器
2016/08/08 Javascript
Javascript从数组中随机取出不同元素的两种方法
2016/09/22 Javascript
promise处理多个相互依赖的异步请求(实例讲解)
2017/08/03 Javascript
webpack-dev-server远程访问配置方法
2018/02/22 Javascript
微信小程序实现红包功能(后端PHP实现逻辑)
2018/07/11 Javascript
Vue 实现复制功能,不需要任何结构内容直接复制方式
2019/11/09 Javascript
[49:20]2014 DOTA2国际邀请赛中国区预选赛5.21 CIS VS TongFu
2014/05/22 DOTA
Python通过future处理并发问题
2017/10/17 Python
Django media static外部访问Django中的图片设置教程
2020/04/07 Python
python如何写个俄罗斯方块
2020/11/06 Python
详解Python中list[::-1]的几种用法
2020/11/16 Python
HTML5 Canvas+JS控制电脑或手机上的摄像头实例
2014/05/03 HTML / CSS
英国最大的运动营养公司之一:LA Muscle
2018/07/02 全球购物
可口可乐唇膏:Lip Smackers
2019/08/27 全球购物
Feelunique澳大利亚:欧洲的化妆品零售电商
2019/12/18 全球购物
abstract是什么意思
2012/02/12 面试题
2014年预备党员学习两会心得体会
2014/03/17 职场文书
教师个人自我剖析材料
2014/09/29 职场文书
先进单位事迹材料
2014/12/25 职场文书
检察院起诉书
2015/05/20 职场文书
《莫泊桑拜师》教学反思
2016/02/22 职场文书
分析SQL窗口函数之聚合窗口函数
2022/04/21 Oracle