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逐行读取文件内容相关推荐

  1. pytorch构造IterableDataset,流式读取文件夹,文件夹下所有大数据文件,逐个文件!逐行读取!(pytorch Data学习四)

    我有个文件夹,里面有一万个文件,每个文件都是N个T的容量,那么这就需要逐个文件.逐行读取,读取方法如下: 核心:构造IterableDataset IterableDataset需要设置两个东西,一个 ...

  2. python如何逐行读取文件_Python逐行读取文件中内容的简单方法

    项目开发中文件的读写是必不可少的 下面来简单介绍一下文件的读 读文件,首先我们要有文件 那我首先自己创建了一个文本文件password.txt 内容如下: 下面先贴上代码,然后对其进一步解释: # c ...

  3. java逐行读取文件_Java逐行读取文件

    java逐行读取文件 Today we will look into different java read file line by line methods. Sometimes we have ...

  4. c语言文件按字节读取整数,C语言逐行读取文件

    C语言可以说是我学习的第一门语言,不过似乎也是忘的最多的一门语言,自从因为项目需要重新拾起C语言,我的噩梦就开始了. 依稀记得大二学习数据结构时编程解决"约瑟夫环"."迷 ...

  5. python批量读取文件赋值给一个参数_python txt中的文件,逐行读取,每行赋值给变量...

    展开全部 我的方案应该可以完美解决你的问题.首先,你得找一个.txt的文本,我是.ini,都一样62616964757a686964616fe59b9ee7ad9431333431373935,有几行 ...

  6. java 读取txt乱码_java 逐行读取txt文本如何解决中文乱码

    java读取txt文本中如含有中文,可能会出现乱码,解决方案是: 1.要统一编码,java工程的编码,txt文本编码,java工程中的java文本编码都统一为utf-8: 2.利用 InputStre ...

  7. Java 文件操作 逐行替换文件内容,加快翻译效率

    昨天想看部奥斯卡老片,结果发现居然没有中文版. 为了更方便理解电影内容,下载了罗马尼亚语srt字幕. 但是,碍于水平有限,只能用谷歌翻译快速翻译完.在压制视频时,却发现时间戳由于谷歌翻译的影响.变得不 ...

  8. python各种文件数据的读取

    (持续更新中-) 文章目录 (持续更新中...) 0 常规方法open 0.1 读取时存在中文无法识别 0.2 写入,写入中文 1.读取excel文件 一)python读取: 2.读取csv文件 一) ...

  9. go语言逐行读取和写入文件

    前言 前面一篇博客讲到nodejs使用readline逐行读取和写入文件 今天使用go语言实现从输入文件中读取每行数据,然后将每行字段组合成SQL插入脚本,然后逐行写入另外一个空白文件中. tb_pa ...

  10. while和for循环读取大文件三种读取文件方式

    目录 While和for循环 读写文件 三种读操作比较 read()读文件 readline()读文件 readlines()读文件 While和for循环 for循环实现猜三次年纪 age = 66 ...

最新文章

  1. 当量子计算和机器学习相遇,会碰撞出什么火花?
  2. 只导表前10条数据_【205期】面试官:数据量很大的情况下,对于分页查询你有什么优化方案吗?...
  3. 性能测试工具Gatling
  4. php网页审批权限设置,Linux下ThinkPHP网站目录权限设置
  5. 训练千亿参数模型的法宝,昇腾CANN异构计算架构来了~
  6. hmcl手机版_hmcl启动器
  7. 获取手机网络状态之ConnectivityManager
  8. wubi for ubuntu 9.04 无法运行
  9. python语言程序设计编程题_《python语言程序设计》_第二章编程题
  10. 从零开始学Android(一)
  11. 腾达老的路由器W311R-V2 升级固件为NH326 -路由器中继
  12. 影视解说短视频如何吸引粉丝?三个要点助你吸粉引流
  13. Win10系统隐藏文件资源管理器中的3D对象等七个文件夹
  14. 阳线双响炮K线形态,上升势不可挡,送指标源码
  15. 论文解读:Unprocessing Images for Learned Raw Denoising
  16. Mysql 之 缓存更新策略
  17. npm出现UNMET DEPENDENCY的一种情况
  18. 论文阅读笔记《Dynamic Few-Shot Visual Learning without Forgetting》
  19. c3p0连接池的详细配置
  20. 【数据分析与挖掘(一)】笔试题汇总(附答案)

热门文章

  1. 如何迭代pandas dataframe的行
  2. Trustzone——利用硬件对数据加密,秘钥存在芯片里
  3. kubernetes要实现的目标——随机关掉一台机器,看你的服务能否正常;减少的应用实例能否自动迁移并恢复到其他节点;服务能否随着流量进行自动伸缩...
  4. wiretiger引擎支持行、列存储、LSM,mongodb用的哪个?
  5. 重新认识HBase,Cassandra列存储——本质是还是行存储,只是可以动态改变列(每行对应的数据字段)数量而已,当心不是parquet...
  6. uwsgi 参数解释
  7. 【9.22校内测试】【可持久化并查集(主席树实现)】【DP】【点双联通分量/割点】...
  8. 洛谷P3183食物链题解
  9. MFC获取系统当前时间
  10. python(1) - 输入和输出