python入门之文件操作read(),readline()以及readlines()的区别_听风的蜗牛1的博客-程序员宅基地

技术标签: Python  

很多人都知道python中文件的读取有这三种方式,但是对于初学者来说分不清楚什么时候该用哪个方法,各自有什么特性,用的时候应该注意什么,我这个小菜鸟就来稍微介绍一下:

假设有一个文件名为dashu.txt文件,内容如下:


“ hello dashu

apple

water


总共有3行内容

一、

read([size])方法:

这个方法比较的简单,意思就是从文件的开始位置读取size个字节的内容,如果read()中没有带参数的话那么就是读取至整个文件结束,所以比较适合小型文件,把读取的东西放在一个字符串中,返回的是一个字符串,为了读者能够理解的更加的清楚,就举个简单的栗子吧

a=open("dashu.txt")

lines=a.read()

print lines

print(type(lines))

a.close()

输出的结果为:

hello dashu

apple

water

<type 'str'> #字符串类型

二、

readline()方法:

从单词的字面意思我们就可以很好的理解,readline读取一行的意思,所以这个方法是一行一行的读取,比较适合大型文件成千上百行的那种,此方法返回一个字符串对象。

a=open("dashu.txt")

lines=f.readline()

print(type(lines))

while lines:

     print lines

     lines=f.readline()

 a.close()

输出结果为:

<type 'str'>

hello dashu

apple

water

注意这个结果和上面的是有区别的,因为我们放在while循环中,其实这是循环了三次输出的结果,因为文件中有3行,有几行就会循环几次,再一行一行的输出。

三、

readlines()方法,这个方法是读取文件的所有行,把结果保存在一个列表(list)中,每一行都作为列表的一个元素,不适合读取成千上万行的文件,因为可能会卡死也会比较占内存。

a=open("dashu.txt")

lines=f.readline()

print(type(lines))

     for line in lines:

           print(line)

a.close()

输出结果:

<type 'list'>

hello dashu

apple

water

哈哈,这就是三个方法的区别,最后强调一句,文件打开了一定要记得用close()方法将文件关闭,同时希望这篇文章对大家的学习能够带来帮助!  

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_43661759/article/details/83993912

智能推荐

串行通信与并行通信_串行通信与并行通信题-程序员宅基地

串行通信是指通过一条数据线,将数据一位一位依次传输,而并行通信可以有多条数据线,同时进行多位数据传输。无论是串行通信还是并行通信都是在时钟的上升沿或下降沿将数据送出。因此,数据传输的速度就取决于两个因素:信号线的数量与时钟的频率。这样子看起来好像是并行通信更有优势,然而事实并非如此。PCI总线并行、16-bit/32-bit、33/66MHz、133/266MB/sPCI..._串行通信与并行通信题

CIFAR 数据集_cifar数据集-程序员宅基地

简介CIFAR-10 和 CIFAR-100 是一个包含 8,000 万张微型图像数据集的带标签子集。由 Alex Krizhevsky, Vinod Nair 和 Geoffrey Hinton 收集整理。CIFAR-10CIFAR-10 数据集包含 60,000 张 32x32 彩色图片,分为 10 个类别,每个类别 6,000 张。分为训练图片 50,000 张,测试图片 10,000 张。该数据集分为 5 个训练 batch 和 1 个测试 batch,每个 batch 包含 10,000 _cifar数据集

Python实现数据分析(七)统计学基础_统计学python实现-程序员宅基地

统计学基础1.统计学的研究方法:大量观察法统计分组法综合指标法模型推断法2.完整的统计工作过程:统计调查统计整理统计分析一、统计总体:总体,在同一性质基础上结合起来的许多个别事物的整体总体单位:构成统计总体的个别单位总体容量:一个统计总体所包含的总体单位数。分为无限总体和有限总体。二、1、单位标志:简称标志,用来说明总体单位特征或属性的名称2、品质标志:表示个体属性方面的特征,其具体表现用文字表示。(如:职业,标志表现为工人、教师等)。不可以汇总。3、数量标志_统计学python实现

grep+-v的作用-程序员宅基地

今天在统计报警机器的相关情况,然后发现了这个grep -v作用的重要性,拿来和大家分享!grep -v "==0" /home/oracle/zy/physical.log > /home/oracle/zy/summary.log-v的作用是为了剔除不符合条件的,如下例子cat /home/oracle/zy/physical.log 。。。。。。。。。172.16.3

浏览安全怎么提升?教你设置安全浏览器信任站点_浏览器不安全网站改为安全-程序员宅基地

对于很多人而言,在使用浏览器的时候,都会想要一款清爽干净的浏览器。我们处在信息爆炸的时代,随便打开一个软件,最先看到的就是各种广告推荐,以及娱乐新闻推送,我们偶尔也会被这些信息所吸引。但是很多时候,我们对于这种广告新闻是感到厌烦的,特别是在我们使用浏览器来进行办公或是查找资料的时候,时不时弹出的新闻,会让我们分散注意力,并且在不小心点击后,还会跳转页面,这样就会浪费了我们很多的时间和精力。..._浏览器不安全网站改为安全

使用Python+selenium实例化Microsoft Edge或Chrome浏览器对象和常见的报错_selenuim无法调用edge_Bashida的博客-程序员宅基地

实例化谷歌浏览器或Edge浏览器,报错TypeError: 'module' object is not callable,或浏览器窗口闪退,或DeprecationWarning: executable_path has been deprecated_selenuim无法调用edge

随便推点

c语言编程共阴极和共阳极差别,基于单片机的键盘和LED数码管工作原理.docx-程序员宅基地

#include #define uchar unsigned char#define uint unsigned intuchar dis_buf; //显示缓存uchar temp;uchar key; //键顺序吗void delay0(uchar x); //x*0.14MS#define delayNOP(); {_n..._共阳极和共阴极编程区别

C++/C 宏定义(define)中# ## 的含义 宏拼接-程序员宅基地

原文链接:点击打开链接C++/C 宏定义(define)中# ## 的含义define 中的# ## 一般是用来拼接字符串的,但是实际使用过程中,有哪些细微的差别呢,我们通过几个例子来看看。#是字符串化的意思,出现在宏定义中的#是把跟在后面的参数转成一个字符串;eg:#define strcpy__(dst, src) strcpy(dst,

UIButton的常用属性-程序员宅基地

可以通过代码的方式创建UIButton通用实例化对象方法:UIButton *button = [[UIButton alloc] initWithFrame:rect];快速实例化对象方法:UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];提示:在OC开发中,实例...

tar命令详解-程序员宅基地

格式: tar 选项 文件目录列表功能: 对文件目录进行打包备份选项:-c 建立新的归档文件-r 向归档文件末尾追加文件-x 从归档文件中解出文件-O 将文件解开到标准输出-v 处理过程中输出相关信息-f 对普通文件操作-z 调用gzip来压缩归档文件,与-x联用时调用gzip完成解压缩-Z 调用compress来压缩归档文件,与-x...

pinyin4j入门教程_pinyin-sdk-pinyin4j-程序员宅基地

pinyin4j的官方下载地址http://sourceforge.net/projects/pinyin4j/files/,目前最新的版本是2.5.0 下载解压后的目录结构及说明如下 (1) doc : pinyin4j的api文档(2) lib : pinyin4j的jar包(3) src : pinyin4j的源代码(4) CHAN..._pinyin-sdk-pinyin4j

第一个Gym程序(实验)_gym 测试动图-程序员宅基地

import gym#导入MountainCar-v0环境env = gym.make('MountainCar-v0')#初始化环境env.reset()#循环1000次for _ in range(1000): #绘图 env.render() #进行一个动作 env.step(env.action_space.sample()) # take a ..._gym 测试动图