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使用ftplib实现简易FTP客户端的方法
Jun 03 Python
python2.7到3.x迁移指南
Feb 01 Python
详解Python数据可视化编程 - 词云生成并保存(jieba+WordCloud)
Mar 26 Python
简单分析python的类变量、实例变量
Aug 23 Python
利用python Selenium实现自动登陆京东签到领金币功能
Oct 31 Python
python 操作hive pyhs2方式
Dec 21 Python
Python中url标签使用知识点总结
Jan 16 Python
python GUI库图形界面开发之pyinstaller打包python程序为exe安装文件
Feb 26 Python
Django 解决新建表删除后无法重新创建等问题
May 21 Python
Python实现读取并写入Excel文件过程解析
May 27 Python
详解BeautifulSoup获取特定标签下内容的方法
Dec 07 Python
Python WSGI 规范简介
Apr 11 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 is_file 判断给定文件名是否为一个正常的文件
2010/05/10 PHP
php将url地址转化为完整的a标签链接代码(php为url地址添加a标签)
2014/01/17 PHP
Yii2.0 模态弹出框+ajax提交表单
2016/05/22 PHP
网页设计常用的一些技巧
2006/12/22 Javascript
实例:用 JavaScript 来操作字符串(一些字符串函数)
2007/02/15 Javascript
js中的时间转换—毫秒转换成日期时间的示例代码
2014/01/26 Javascript
js离开或刷新页面检测(且兼容FF,IE,Chrome)
2014/03/05 Javascript
JavaScript中的bold()方法使用详解
2015/06/08 Javascript
深入浅析JavaScript中数据共享和数据传递
2016/04/25 Javascript
EasyUI的DataGrid每行数据添加操作按钮的实现代码
2017/08/22 Javascript
JS+Canvas绘制动态时钟效果
2017/11/10 Javascript
浅析Vue自定义组件的v-model
2017/11/26 Javascript
javascript中innerHTML 获取或替换html内容的实现代码
2020/03/17 Javascript
Python3实现的腾讯微博自动发帖小工具
2013/11/11 Python
python实现用户登陆邮件通知的方法
2015/07/09 Python
Python中用post、get方式提交数据的方法示例
2017/09/22 Python
python实现NB-IoT模块远程控制
2018/06/20 Python
numpy库与pandas库axis=0,axis= 1轴的用法详解
2019/05/27 Python
对python中的float除法和整除法的实例详解
2019/07/20 Python
Python使用tkinter模块实现推箱子游戏
2019/10/08 Python
python爬虫之遍历单个域名
2019/11/20 Python
python序列化与数据持久化实例详解
2019/12/20 Python
python判断一个变量是否已经设置的方法
2020/08/13 Python
澳大利亚相机之家:Camera House
2017/11/30 全球购物
LODI女鞋在线商店:阿利坎特的鞋类品牌
2019/02/15 全球购物
下列程序在32位linux或unix中的结果是什么
2014/03/25 面试题
专升本个人自我评价
2013/12/22 职场文书
门卫人员岗位职责
2013/12/24 职场文书
工厂仓管员岗位职责
2014/01/01 职场文书
展会邀请函范文
2014/01/26 职场文书
中学生励志演讲稿
2014/04/26 职场文书
护士年终考核评语
2014/12/31 职场文书
故宫导游词
2015/01/31 职场文书
运动会通讯稿50字
2015/07/20 职场文书
2016年度继续教育学习心得体会
2016/01/19 职场文书
Springboot/Springcloud项目集成redis进行存取的过程解析
2021/12/04 Redis