python一次性读取整个文件-Python逐行读取文件内容
1. 最基本的读文件方法:
?
# File: readline-example-1.py
file = open("sample.txt")
while 1:
line = file.readline()
if not line:
break
pass # do something
一行一行得从文件读数据,显然比较慢;不过很省内存。
在我的机器上读10M的sample.txt文件,每秒大约读32000行
2. 用fileinput模块
?
# File: readline-example-2.py
import fileinput
for line in fileinput.input("sample.txt"):
pass
写法简单一些,不过测试以后发现每秒只能读13000行数据,效率比上一种方法慢了两倍多……
3. 带缓存的文件读取
?
# File: readline-example-3.py
file = open("sample.txt")
while 1:
lines = file.readlines(100000)
if not lines:
break
for line in lines:
pass # do something
这个方法真的更好吗?事实证明,用同样的数据测试,它每秒可以读96900行数据!效率是第一种方法的3倍,第二种方法的7倍!
————————————————————————————————————————————————————————————
在Python 2.2以后,我们可以直接对一个file对象使用for循环读每行数据:
?
# File: readline-example-5.py
file = open("sample.txt")
for line in file:
pass # do something
而在Python 2.1里,你只能用xreadlines迭代器来实现:
?
# File: readline-example-4.py
file = open("sample.txt")
for line in file.xreadlines():
pass # do something
python逐行读取文本
一、使用open打开文件后一定要记得调用文件对象的close()方法。比如可以用try/finally语句来确保最后能关闭文件。
二、需要导入import os
三、下面是逐行读取文件内容的三种方法:
1、第一种方法:
f = open("foo.txt") #返回一个文件对象
line = f.readline() #调用文件的 readline()方法
whileline:
print line, #后面跟 ',' 将忽略换行符
#print(line, end = '') # 在 Python 3 中使用
line =f.readline()
f.close()
2、第二种方法:
与第3种方法对比, 并非一次性将全部的文件内容载入到内存里,而是在迭代的时候,循环到哪一行才将哪一行读入内存。这里涉及到一个新的概念-迭代器。
第二种方法是文本文件读取的最佳选择,它简单,且对任意大小的文件都有效,因为他不会一次性把整个文件都载入到内存里,相反第三种方法存在内存压力过大的问题。
for line in open("foo.txt"):
print line,
3、第三种方法:
f = open("c:\1.txt","r")
lines = f.readlines() #读取全部内容 ,并以列表方式返回
for line inlines
print line
四、一次性读取整个文件内容:
file_object = open('thefile.txt')
try:
all_the_text =file_object.read()
finally:
file_object.close()
五、区别对待读取文本 和 二进制:
1、如果是读取文本
读文本文件
input = open('data', 'r')
#第二个参数默认为r
input = open('data')
2、如果是读取二进制
input = open('data', 'rb')
读固定字节
chunk = input.read(100)
python3 按行读取并进行编辑
def test(file): with open(file, 'r+') as a: with open(file, 'r+') as b: for line in a: b.write('hello ' + line)
1、文件打开格式不一定是“r+”,但是必须指针落点从头开始,所有不能说“a”,因为“w”会把源文件内容清空,也不行
第一个文件打开格式可以是:r,r+
第二个文件打开格式可以是:r+
2、文件必须open两次,因为每一次指针落点都要从头开始
3、r+模式write时会覆盖原来内容,但是
在文件关闭前或缓冲区刷新前,字符串内容存储在缓冲区中,这时你在文件中是看不到写入的内容的。
————————————————
需要安装xlwt库,可以用如下命令安装:
pip install xlwt
1
示例文本:
100 -494 td_error 0.6692215
200 318 td_error 0.57682794
300 57 td_error 0.45037615
400 260 td_error 0.42214713
500 586 td_error 0.45073098
600 615 td_error 0.4728373
700 731 td_error 0.48083866
800 802 td_error 0.3751492
900 440 td_error 0.4249844
1000 430 td_error 0.36427215
12345678910
参考代码:
import xlwt
import codecs
input_txt = 'demo.txt'
output_excel = 'demo.xls'
sheetName = 'Sheet1'
start_row = 0
start_col = 0
wb = xlwt.Workbook(encoding = 'utf-8')
ws = wb.add_sheet(sheetName)
f = open(input_txt, encoding = 'utf-8')
row_excel = start_row
for line in f:
line = line.strip(' ')
line = line.split(' ')
print(line)
col_excel = start_col
len_line = len(line)
for j in range(len_line):
print (line[j])
ws.write(row_excel,col_excel,line[j])
col_excel += 1
wb.save(output_excel)
row_excel += 1
f.close
1234567891011121314151617181920212223242526272829303132
代码执行完后,会生成一个excel文件
————————————————
python一次性读取整个文件-Python逐行读取文件内容相关推荐
- pytorch构造IterableDataset,流式读取文件夹,文件夹下所有大数据文件,逐个文件!逐行读取!(pytorch Data学习四)
我有个文件夹,里面有一万个文件,每个文件都是N个T的容量,那么这就需要逐个文件.逐行读取,读取方法如下: 核心:构造IterableDataset IterableDataset需要设置两个东西,一个 ...
- python如何逐行读取文件_Python逐行读取文件中内容的简单方法
项目开发中文件的读写是必不可少的 下面来简单介绍一下文件的读 读文件,首先我们要有文件 那我首先自己创建了一个文本文件password.txt 内容如下: 下面先贴上代码,然后对其进一步解释: # c ...
- java逐行读取文件_Java逐行读取文件
java逐行读取文件 Today we will look into different java read file line by line methods. Sometimes we have ...
- c语言文件按字节读取整数,C语言逐行读取文件
C语言可以说是我学习的第一门语言,不过似乎也是忘的最多的一门语言,自从因为项目需要重新拾起C语言,我的噩梦就开始了. 依稀记得大二学习数据结构时编程解决"约瑟夫环"."迷 ...
- python批量读取文件赋值给一个参数_python txt中的文件,逐行读取,每行赋值给变量...
展开全部 我的方案应该可以完美解决你的问题.首先,你得找一个.txt的文本,我是.ini,都一样62616964757a686964616fe59b9ee7ad9431333431373935,有几行 ...
- java 读取txt乱码_java 逐行读取txt文本如何解决中文乱码
java读取txt文本中如含有中文,可能会出现乱码,解决方案是: 1.要统一编码,java工程的编码,txt文本编码,java工程中的java文本编码都统一为utf-8: 2.利用 InputStre ...
- Java 文件操作 逐行替换文件内容,加快翻译效率
昨天想看部奥斯卡老片,结果发现居然没有中文版. 为了更方便理解电影内容,下载了罗马尼亚语srt字幕. 但是,碍于水平有限,只能用谷歌翻译快速翻译完.在压制视频时,却发现时间戳由于谷歌翻译的影响.变得不 ...
- python各种文件数据的读取
(持续更新中-) 文章目录 (持续更新中...) 0 常规方法open 0.1 读取时存在中文无法识别 0.2 写入,写入中文 1.读取excel文件 一)python读取: 2.读取csv文件 一) ...
- go语言逐行读取和写入文件
前言 前面一篇博客讲到nodejs使用readline逐行读取和写入文件 今天使用go语言实现从输入文件中读取每行数据,然后将每行字段组合成SQL插入脚本,然后逐行写入另外一个空白文件中. tb_pa ...
- while和for循环读取大文件三种读取文件方式
目录 While和for循环 读写文件 三种读操作比较 read()读文件 readline()读文件 readlines()读文件 While和for循环 for循环实现猜三次年纪 age = 66 ...
最新文章
- 当量子计算和机器学习相遇,会碰撞出什么火花?
- 只导表前10条数据_【205期】面试官:数据量很大的情况下,对于分页查询你有什么优化方案吗?...
- 性能测试工具Gatling
- php网页审批权限设置,Linux下ThinkPHP网站目录权限设置
- 训练千亿参数模型的法宝,昇腾CANN异构计算架构来了~
- hmcl手机版_hmcl启动器
- 获取手机网络状态之ConnectivityManager
- wubi for ubuntu 9.04 无法运行
- python语言程序设计编程题_《python语言程序设计》_第二章编程题
- 从零开始学Android(一)
- 腾达老的路由器W311R-V2 升级固件为NH326 -路由器中继
- 影视解说短视频如何吸引粉丝?三个要点助你吸粉引流
- Win10系统隐藏文件资源管理器中的3D对象等七个文件夹
- 阳线双响炮K线形态,上升势不可挡,送指标源码
- 论文解读:Unprocessing Images for Learned Raw Denoising
- Mysql 之 缓存更新策略
- npm出现UNMET DEPENDENCY的一种情况
- 论文阅读笔记《Dynamic Few-Shot Visual Learning without Forgetting》
- c3p0连接池的详细配置
- 【数据分析与挖掘(一)】笔试题汇总(附答案)
热门文章
- 如何迭代pandas dataframe的行
- Trustzone——利用硬件对数据加密,秘钥存在芯片里
- kubernetes要实现的目标——随机关掉一台机器,看你的服务能否正常;减少的应用实例能否自动迁移并恢复到其他节点;服务能否随着流量进行自动伸缩...
- wiretiger引擎支持行、列存储、LSM,mongodb用的哪个?
- 重新认识HBase,Cassandra列存储——本质是还是行存储,只是可以动态改变列(每行对应的数据字段)数量而已,当心不是parquet...
- uwsgi 参数解释
- 【9.22校内测试】【可持久化并查集(主席树实现)】【DP】【点双联通分量/割点】...
- 洛谷P3183食物链题解
- MFC获取系统当前时间
- python(1) - 输入和输出