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 ip正则式
May 07 Python
Python实现设置windows桌面壁纸代码分享
Mar 28 Python
在Python中用get()方法获取字典键值的教程
May 21 Python
简单谈谈Python的pycurl模块
Apr 07 Python
Django框架实现逆向解析url的方法
Jul 04 Python
python微元法计算函数曲线长度的方法
Nov 08 Python
HTML的form表单和django的form表单
Jul 25 Python
django 使用 PIL 压缩图片的例子
Aug 16 Python
python多线程实现代码(模拟银行服务操作流程)
Jan 13 Python
Python 绘制可视化折线图
Jul 22 Python
python+appium+yaml移动端自动化测试框架实现详解
Nov 24 Python
浅析Python 中的 WSGI 接口和 WSGI 服务的运行
Dec 09 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实现的一致性Hash算法详解【分布式算法】
2018/03/31 PHP
表头固定(利用jquery实现原理介绍)
2012/11/08 Javascript
动态添加option及createElement使用示例
2014/01/26 Javascript
Node.js的项目构建工具Grunt的安装与配置教程
2016/05/12 Javascript
AngularJS基础 ng-keydown 指令简单示例
2016/08/02 Javascript
使用JS轻松实现ionic调用键盘搜索功能(超实用)
2016/09/06 Javascript
浅谈jQuery绑定事件会叠加的解决方法和心得总结
2016/10/26 Javascript
jQuery动态生成Bootstrap表格
2016/11/01 Javascript
vue mint-ui学习笔记之picker的使用
2017/10/11 Javascript
javascript用rem来做响应式开发
2018/01/13 Javascript
详解vue中多个有顺序要求的异步操作处理
2019/10/29 Javascript
Python translator使用实例
2008/09/06 Python
Python简单的制作图片验证码实例
2017/05/31 Python
python模块之time模块(实例讲解)
2017/09/13 Python
git进行版本控制心得详谈
2017/12/10 Python
Python实现的生产者、消费者问题完整实例
2018/05/30 Python
python实现复制大量文件功能
2019/08/31 Python
windows 10 设定计划任务自动执行 python 脚本的方法
2019/09/11 Python
Python实现RabbitMQ6种消息模型的示例代码
2020/03/30 Python
Python pip install之SSL异常处理操作
2020/09/03 Python
numba提升python运行速度的实例方法
2021/01/25 Python
网页切图的CSS和布局经验与要点
2015/04/09 HTML / CSS
HTML5 placeholder属性详解
2016/06/22 HTML / CSS
美国潜水装备、水肺潜水和浮潜设备商店:Leisure Pro
2018/08/08 全球购物
英国著名药妆店:Superdrug
2021/02/13 全球购物
办公室内勤工作职责
2013/12/11 职场文书
个人素质的自我评价分享
2013/12/16 职场文书
网上卖盒饭创业计划书
2014/01/26 职场文书
学习雷锋精神心得体会范文
2014/03/12 职场文书
求职简历自我评价范例
2014/03/12 职场文书
研讨会主持词
2014/04/02 职场文书
寄语学生的话
2014/04/10 职场文书
综合测评个人总结
2015/03/03 职场文书
2015年招生工作总结
2015/05/04 职场文书
nginx服务器的下载安装与使用详解
2021/08/02 Servers
Golang Elasticsearches 批量修改查询及发送MQ
2022/04/19 Golang