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 相关文章推荐
gearman的安装启动及python API使用实例
Jul 08 Python
简单的Python2.7编程初学经验总结
Apr 01 Python
Python代码块批量添加Tab缩进的方法
Jun 25 Python
Win10下python 2.7.13 安装配置方法图文教程
Sep 18 Python
Python matplotlib画图与中文设置操作实例分析
Apr 23 Python
python,Django实现的淘宝客登录功能示例
Jun 12 Python
浅谈python输出列表元素的所有排列形式
Feb 26 Python
Python Pandas 对列/行进行选择,增加,删除操作
May 17 Python
浅谈tensorflow中dataset.shuffle和dataset.batch dataset.repeat注意点
Jun 08 Python
python 基于wx实现音乐播放
Nov 24 Python
Python 利用argparse模块实现脚本命令行参数解析
Dec 28 Python
python开发人人对战的五子棋小游戏
May 02 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
星际原理概述
2020/03/04 星际争霸
PHP与SQL注入攻击防范小技巧
2011/09/16 PHP
PHP使用星号隐藏用户名,手机和邮箱的实现方法
2016/09/22 PHP
简单的js图片轮换代码(js图片轮播)
2014/05/06 Javascript
js鼠标点击图片实现随机变换图片的方法
2015/02/16 Javascript
JavaScript实现为指定对象添加多个事件处理程序的方法
2015/04/17 Javascript
JQuery实现动态添加删除评论的方法
2015/05/18 Javascript
jQuery的框架介绍
2016/05/11 Javascript
JS与Ajax Get和Post在使用上的区别实例详解
2016/06/08 Javascript
javascript表单控件实例讲解
2016/09/13 Javascript
详解Angular的数据显示优化处理
2016/12/26 Javascript
微信小程序 用户数据解密详细介绍
2017/01/09 Javascript
angular2中router路由跳转navigate的使用与刷新页面问题详解
2017/05/07 Javascript
JavaScript Reflect Metadata实现详解
2019/12/12 Javascript
JavaScript将数组转换为链表的方法
2020/02/16 Javascript
Node.js API详解之 dns模块用法实例分析
2020/05/15 Javascript
vue中父子组件的参数传递和应用示例
2021/01/04 Vue.js
[49:29]LGD vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
对pandas的行列名更改与数据选择详解
2018/11/12 Python
Django 开发环境与生产环境的区分详解
2019/07/26 Python
Python中PyQt5/PySide2的按钮控件使用实例
2019/08/17 Python
Python ArgumentParse的subparser用法说明
2020/04/20 Python
Python3与fastdfs分布式文件系统如何实现交互
2020/06/23 Python
Python实现自动装机功能案例分析
2020/10/22 Python
CSS3属性 line-clamp控制文本行数的使用
2020/03/19 HTML / CSS
英国健身仓库:Bodybuilding Warehouse
2019/03/06 全球购物
德国自然时尚和有机产品购物网站:Waschbär
2019/05/29 全球购物
儿子婚宴答谢词
2014/01/09 职场文书
办公室主任主任岗位责任制
2014/02/11 职场文书
银行爱岗敬业演讲稿
2014/05/05 职场文书
校车安全责任书
2014/08/25 职场文书
2016元旦晚会主持词
2015/07/01 职场文书
2015大学生暑假调查报告
2015/07/13 职场文书
创业计划书之密室逃脱
2019/11/08 职场文书
Python3.8官网文档之类的基础语法阅读
2021/09/04 Python
mysql5.5中文乱码问题解决的有用方法
2022/05/30 MySQL