python提供了3个常用的读文件函数、分别是,Python3 对文件操作
在计算机系统中,以硬盘为载体存储在计算机上的信息集合称为文件。文件可以是文本文档、图片、声音、程序等多种类型。在编程时经常要对文件进行读写等操作, 从程序员的视角可以把文件理解为是连续的字节序列,进行数据传输需要使用字节流, 字节流可以是由单个字节或大块数据组成。文件类型通常分为文本文件和二进制文件。
文件操作
在 Python中对文件进行操作分为3个步骤,首先要打开文件,然后是对文件进行读写操作,最后需要关闭文件。
打开文件---open函数
你必须先用Python内置的open()函数打开一个文件,创建一个file对象,相关的方法才可以调用它进行读写。
语法:
file object = open(file_name [, access_mode][, buffering])
各个参数的细节如下:
file_name:file_name变量是一个包含了你要访问的文件名称的字符串值。
access_mode:access_mode决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读(r)。
buffering:如果buffering的值被设为0,就不会有寄存。如果buffering的值取1,访问文件时会寄存行。如果将buffering的值设为大于1的整数,表明了这就是的寄存区的缓冲大小。如果取负值,寄存区的缓冲大小则为系统默认。
不同模式打开文件的完全列表:
模式图如下:
File对象的属性
一个文件被打开后,你有一个file对象,你可以得到有关该文件的各种信息。
以下是和file对象相关的所有属性的列表:
关闭文件---close()方法
File 对象的 close()方法刷新缓冲区里任何还没写入的信息,并关闭该文件,这之后便不能再进行写入。
当一个文件对象的引用被重新指定给另一个文件时,Python 会关闭之前的文件。用 close()方法关闭文件是一个很好的习惯。
语法:
fileObject.close()
例子:
python代码如下:
f = open(‘练习.txt‘,‘w‘,encoding=‘utf-8‘) #写文件
...
f.close()
f = open(‘练习.txt‘,‘r‘,encoding=‘utf-8‘) #读文件
...
f.close()
向文件写数据--- write()方法
write()方法可将任何字符串写入一个打开的文件。需要重点注意的是,Python字符串可以是二进制数据,而不是仅仅是文字。
write()方法不会在字符串的结尾添加换行符(‘\n‘):
语法:
fileObject.write(string)
例子:
python代码如下:
f = open(‘练习1.txt‘,‘w‘,encoding=‘utf-8‘)
f.write("我是中国人\n")
f.write("我爱自己的祖国\n")
f.write("我爱北京天安门\n")
输出结果:
从文件读数据
file.read()方法从一个打开的文件中读取一个字符串。需要重点注意的是,Python字符串可以是二进制数据,而不是仅仅是文字。
语法:
file.read([count])
例子:
原文件(练习.txt)
读文件代码如下:
f = open(‘练习.txt‘,‘r‘,encoding=‘utf-8‘)
print(f.read(1))
print(f.read(10))
输出结果:
使用file.readline()可以读取一行数据,同样是返回一个字符串
例子:
python代码如下:
f = open(‘练习.txt‘,‘r‘,encoding=‘utf-8‘)
print(f.readline())
输出结果:
file.readline()括号里面加数字,表示读取字符串个数
例子:
python代码如下:
f = open(‘练习.txt‘,‘r‘,encoding=‘utf-8‘)
print(f.readline(1))
输出结果:
file.readlines剩余行数据,返回的是一个字符串列表
例子:
python代码如下:
f = open(‘练习.txt‘,‘r‘,encoding=‘utf-8‘)
print(f.readlines())
输出结果如下:
file.readlines()括号里面加数字,表示读取字符串个数,还有当前行剩余的也读出来
例子1:
python代码如下:
f = open(‘练习.txt‘,‘r‘,encoding=‘utf-8‘)
print(f.readlines(1)) #表示打印第一个字符串所在的那一行
输出结果如下:
例子2:
python代码如下:
f = open(‘练习.txt‘,‘r‘,encoding=‘utf-8‘)
print(f.readlines(7)) #表示打印第7个字符串所在的那一行及前面的所有行
输出结果如下:
注意:read()读取的方式是读取所有数据,放到内存中,这样很占内存,而且效率低小,这里推荐文件迭代器
文件迭代器
从 Python2.2开始,引进了迭代器和文件迭代,使文件操作更加高效,不需
调用 read()方法。简单说,迭代就是在for循环中读取每一行数据,示例代码如下:
python代码如下:
f = open(‘练习.txt‘,‘r‘,encoding=‘utf-8‘)
for line in f.readlines():
print(line.strip())
输出结果:
注意事项:
以写方式打开文件时,不支持读操作。但是还有其他几种模式存在,使用 r+、w+、或a+ 方式打开文件,可以同时进行读写操作。
r+ 表示不清除原文件内容,读写方式打开,而新添加的数据在文件尾部。
w+ 表示清除原文件内容,写读方式打开,读不到原文件的内容。
a+表示把文件指针移到文件末尾,在文件末尾可以继续写数据,读数据不受影响。
文件定位(文件指针)
tell()方法告诉你文件内的当前位置, 换句话说,下一次的读写会发生在文件开头这么多字节之后。
seek(offset [,from])方法改变当前文件的位置。
Offset变量表示要移动的字节数。
From变量指定开始移动字节的参考位置。
如果from被设为0,这意味着将文件的开头作为移动字节的参考位置。如果设为1,则使用当前的位置作为参考位置。如果它被设为2,那么该文件的末尾将作为参考位置。
例子:
python代码如下:
f = open(‘练习.txt‘,‘r‘,encoding=‘utf-8‘)
print(f.readline()) #打印的一行
f.seek(0) #指针返回原点
print(f.tell()) #获取当前指针位置
print(f.readline()) #再打印一行
输出结果如下:
修改文件
1.把文件都加载到内存里面,在修改,如vim修改文件
备注:这种方式会覆盖掉原文件,而且不适合修改大文件,太消耗系统内存了,不推荐!
2.读取原文件,在修改相应文件,生成到新文件中。(推荐使用)
例子:
python代码如下:
f = open(‘练习.txt‘,‘r‘,encoding=‘utf-8‘)
f_new =open(‘练习2.txt‘,‘w‘,encoding=‘utf-8‘)
for line in f:
if "宋代:孙洙" in line:
line = line.replace("宋代:孙洙","宋代:词人") #将"孙洙"替换成"词人”
f_new.write(line)
f.close()
f_new.close()
输出结果如下:
with使用
有一些任务,可能事先需要设置,事后做清理工作。对于这种场景,Python的with语句提供了一种非常方便的处理方式。一个很好的例子是文件处理,你需要获取一个文件句柄,从文件中读取数据,然后关闭文件句柄。
例子:
python代码如下:
with open(‘练习.txt‘, ‘r‘, encoding=‘utf-8‘) as f:
for line in f.readlines():
print(line.strip())
输出结果如下:
file 对象内建方法:
file 对象使用 open 函数来创建,下表列出了 file 对象常用的函数:
总结:
1.本博客参考了菜鸟基础和自己动手操作写出的。
2.python2 和python3 是不一样,这里是python3操作文件方法。
3.python操作文件是一种很常用的方法,要经常动手操作,才能掌握知识点!
原文:https://blog.51cto.com/13760351/2442274
python提供了3个常用的读文件函数、分别是,Python3 对文件操作相关推荐
- python文件对象提供了3个读方法、分别是-python3 IO编程:文件读写
打开文件对象 在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从 ...
- [python]开发IC utility 一些常用的方法和函数和语法规则
文章目录 字符串的replace 字符串的split 字符串的strip 循环for in 判断语句中的and not re.search与re.match 合并元素为一个字符串 判断提供的path是 ...
- Python初级学习教程—从入门开始学习(函数、组合数据类型、文件操作、异常、模块)
文章目录 入门 一.数据的相关操作 二.continue 和 break的区别(易混点) 三.函数 变量的作用域 三.函数进阶 1.函数多个返回值 2.函数参数种类 3.匿名函数 组合数据类型 一.列 ...
- python文件对象提供了3个读方法、分别是-python3基础之文件对象操作
1.向文本文件中写入内容 s = 'Hello world 文本文件的读取方法 文本文件的写入方法 ' # 需要写入文件的字符串 print('显示需要写入的内容: {0:s}'.format(s)) ...
- Python罕见的但是却常用的内置函数
- C语言read()函数:读文件函数(由已打开的文件读取数据)
相关函数:readdir, write, fcntl, close, lseek, readlink, fread 头文件:#include <unistd.h> 定义函数:ssize_t ...
- python常用字符串处理函数_Python第10课:常用的字符串处理函数
Python第10课:常用的字符串处理函数 时间 2019-01-17上午10:00 主讲 刘培富 地点 四楼电教室 1.字符的ascii码及其逆运算 ord("x") 求asci ...
- 用python提取发票扫描件常用的10多个发票信息保存到excel表
用python提取发票扫描件常用的10多个发票信息 #输出所有文件和文件夹 如何将发票扫描将中常用的10-20个信息提取到excel表格中,用python提取是不错的方法. 1.用python提取发票 ...
- 用c语言对文件的写入和保存,C++_C语言中对文件最基本的读取和写入函数,C语言read()函数:读文件函数( - phpStudy...
C语言中对文件最基本的读取和写入函数 C语言read()函数:读文件函数(由已打开的文件读取数据)头文件: #include 定义函数: ssize_t read(int fd, void * buf ...
最新文章
- 3、LVS_TUN实现负载均衡
- Grid SearchCV(网格搜索) 用法代码演示
- PMP考前复习题 系列三
- Windows 10 Technical Preview 安装体验及变化
- 提交代码前问自己七个问题!
- GridSearchCV和交叉熵
- java怎么表示正无穷大_有什么比无穷大更大,比无穷小更小?
- CCNA-第十一篇-VTP+STP(上)
- 绝地求生7月5日服务器维护,绝地求生7月5日更新到几点 吃鸡更新维护公告
- 奖金15万,百度携手CCF打造CV+NLP双赛题
- dubbo服务压力测试
- 数学建模:层次分析法
- python离线语音识别_python语音识别模块
- 韦东山嵌入式linux第一期_裸机实战之开发板熟悉与体验篇
- 获取电信天邑TEWA-700E光猫超级密码相近系列通用方法
- linux动态链接库全局变量共享问题DLL共享数据段
- 微信云开发Al短视频一键换脸小程序源码
- 零基础学习一年拿到BAT三家offer
- 机器人煮面机创始人_煮面机器人引领智能餐饮新时代
- linux虚拟机重启后,运行nmtui提示NetworkManaer 未运行
热门文章
- (转载)余额模型使用指南
- C语言|int型最大值和最小值
- 亚马逊和脸书发布 TorchServe 解决Pytorch 模型的部署问题
- Ubuntu中文件系统根目录上的磁盘空间不足的详细解决方案
- Signing for xxx requires a development team. Select a development team
- 描述计算机算法方法,算法及算法的描述方法
- 经常出现 Limiting *** from XXX to 200 packets/sec
- 初级软件测试相关知识
- 优秀图片生成参数-stable-diffusion-webui
- vdr使用linux nfs作为存储