python 文件读取
- 读取整个文件
操作文件的第一步就是得打开要操作的文件,然后进行读取。在python中我们可以使用open函数来打开一个文件,然后使用read方法来读取文件。
示例:
import oswith open('data.txt', encoding='utf-8') as file_obj:contents = file_obj.read()print(contents.rstrip())
首先,我们看下open函数的定义:
def open(file: Union[str, bytes, int], mode: str = ..., buffering: int = ..., encoding: Optional[str] = ..., errors: Optional[str] = ..., newline: Optional[str] = ..., closefd: bool = ...) Inferred type: (file: Union[str, bytes, int], mode: str, buffering: int, encoding: Optional[str], errors: Optional[str], newline: Optional[str], closefd: bool) -> IO Open file and return a stream. Raise IOError upon failure.
在一般情况下,我们打开文件只需要传入文件路径即可,这里我们读取的文件的内容是中文,为了避免乱码,我们在这里指定了编码格式。其他的参数等我们用到的时候,在仔细说明。
open函数返回一个表示文件的对象,python会将这个对象存储在我们的变量file_obj中,这样我们就可以方便的操作了。
data.txt和我们的文件在同一目录下,所以直接使用名称即可:
如果是其他路径(非程序目录),那么直接使用绝对路径:
我是在window的开发环境,以windows为例:
file_path = 'D:\data.txt'
with open(file_path, encoding='utf-8') as file_obj:
read()方法读取文件的整个内容,并将其作为字符串返回。
其他的我们先不做说明,先来看下文件运行结果,是否将文件内容成功读取:
虽然我们的文本有点多,大家可以仔细看一下,就当回味一下高中生活了。
有些仔细一点的朋友可能发现了,这里我们只是使用了open和read来打开和读取文本文件,但是并没有关闭文件句柄,这一点有点奇怪,我们在其他的语言open和close总是成双成对的出现的。
这里的奥妙就在于with关键字,使用该关键字可以让python去确定,我们在不需要访问文件的时候自动关闭文件。也就是说我们只需要打开和操纵文件,python会在合适的机会关闭文件。
我们在将文件打开后,打印一下这个file_obj到底有些什么:
print(dir(file_obj))
输出:
['_CHUNK_SIZE', '__class__', '__del__', '__delattr__', '__dict__', '__dir__', '__doc__', '__enter__', '__eq__', '__exit__', '__format__', '__ge__', '__getattribute__', '__getstate__', '__gt__', '__hash__', '__init__', '_
_init_subclass__', '__iter__', '__le__', '__lt__', '__ne__', '__new__', '__next__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '_checkClosed', '_checkReadable','_checkSeekable', '_checkWritable', '_finalizing', 'buffer', 'close', 'closed', 'detach', 'encoding', 'errors', 'fileno', 'flush', 'isatty', 'line_buffering', 'mode', 'name', 'newlines', 'read', 'readable', 'readline',
'readlines', 'seek', 'seekable', 'tell', 'truncate', 'writable', 'write', 'writelines']
这些都是和文件操作相关的,在这里不会给大家做仔细说明,只是让大家对这些东西有个印象,等遇到了,我们在说怎么使用。
- 逐行读取
上面是读取整个文件内容,接下来我们看下怎么逐行读取文件,为了方便演示,我们将data的内容修改为几行数字。
在逐行读取文本的时候,常见的可以使用for循环来读取:
with open(file_path, encoding='utf-8') as file_obj:for line in file_obj:print(line)
还有就是使用readline方法来逐行读取文件:
with open(file_path, encoding='utf-8') as file_obj:line = file_obj.readline()while line != '':print(line)line = file_obj.readline()
另外一种倒像是第二种的升级版,它会一次性的将文件逐行读取存入一个列表中,一遍我们使用:
with open(file_path, encoding='utf-8') as file_obj:lines = file_obj.readlines()for line in lines:print(line)
lines 在代码块with之外也是可以使用的。
说了几种常见的使用方法,我们来看下程序运行输出:
D:\Programs\python\HelloWorld\venv\Scripts\python.exe D:\Programs\python\HelloWorld\python_file.py
1234234534564567Process finished with exit code 0
大家可以看到,我们读取的数据没有任何问题,但是每行数据之间都会存在多余的空行,这是因为在文件中每行的末尾都会有一个看不见的换行符。如果我们希望去除这些多余空行,可以使用rstrip()函数:
def rstrip(self, chars: Optional[str] = ...) Inferred type: (self: str, chars: Optional[str]) -> str
S.rstrip([chars]) -> str
Return a copy of the string S with trailing whitespace removed. If chars is given and not None, remove characters in chars instead.
那么上面的例子我们该这么修改:
with open(file_path, encoding='utf-8') as file_obj:lines = file_obj.readlines()for line in lines:print(line.rstrip())
输出:
1234
2345
3456
4567
python 文件读取相关推荐
- python读取文件读不出来-python文件读取失败怎么处理
在读取文件时候比如读取 xxx.csv 时候 可能报编码错误 类似于 'xxx' codec can't decode byte 0xac in position 211: illegal multi ...
- python 文件读取错误之FileNotFoundError: [Errno 2] No such file or directory:,顺便学习斜杠/和反斜杠\的用法
python 文件读取错误之FileNotFoundError: [Errno 2] No such file or directory:,顺便学习斜杠/和反斜杠\的用法: 最近学习文件读取和中文分词 ...
- python文件读取操作练习题(统计单词)
python文件读取操作练习题(统计单词) 学习路线:python的文件读取基础入门(read(),readlines(),with.open()) ->python文件读取操作练习题(统计单词 ...
- python文件读取数据-Python从文件中读取数据
一.读取整个文件内容 在读取文件之前,我们先创建一个文本文件resource.txt作为源文件. resource.txt my name isjoker, I am18years old, How ...
- 一文贯通python文件读取
不论是数据分析还是机器学习,乃至于高大上的AI,数据源的获取是所有过程的入口. 数据源的存在形式多为数据库或者文件,如果把数据看做一种特殊格式的文件的话,即所有数据源都是文件.获得数据,就是读取文件的 ...
- 一文贯通python文件读取 1
版权声明:本文为半吊子子全栈工匠(wireless_com,同公众号)原创文章,未经允许不得转载. https://blog.csdn.net/wireless_com/article/details ...
- python文件读取模式_day-2 python 文件读写模式r,r+,w,w+,a,a+的区别
r+和w+都是可读可写,区别在于r+读文件时,不会覆盖之前的内容,之前的内容能够读出来:w+读时,会覆盖之前的内容:所以读文件时,用r或者r+ #读操作 r 1 filepath = 'aa.log' ...
- 【python文件读取】加密数据的读取
问题引出 当我们程序中要用到账号,密码等一些敏感信息时,别人一眼就能看得到这些信息的时候,该怎么操作才能避免敏感信息被泄露呢?对了,我们不妨把信息写到文件里,通过获取文件中设定好的数据来起到数据保密的 ...
- python文件读取方法read(size)的含义是_Python file read()方法
在计算机中,文件包括了文档.图片.视频.程序组件等,每个类型的文件都有不同的作用或功用.例如一个程序通常由主程序.动态库.配置文件等组成,这些也是文件,起到支持程序运行的作用.想要使用文件,第一个操作 ...
- python文件读取下一个字符_python文件的读写总结
读写文件是最常见的IO操作.Python内置了读写文件的函数,用法和C是兼容的. 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘, ...
最新文章
- java中main方法前的public static void及其后面的(String[] args)【笔记自用】
- git 删除tag_Git 基本应用
- 第七节 VMware View 6.0 菜鸟入门 Composer 安装和部署
- 使用mp4v2将aac音频h264视频数据封装成mp4开发心得
- form:radiobuttons单选按钮i-check选中触发
- Java Web学习总结(23)——Distributed Configuration Management Platform(分布式配置管理平台)
- Linux设备驱动01:Linux设备驱动概述
- 阿里云公布IP地理位置库抄袭调查结果;华为云电脑8月16日将停止服务和运营;Chrome 92发布|极客头条...
- AWS学习笔记(四)--CLI创建EC2时执行脚本
- 网络生活催生新式词汇
- antv图表 根据屏幕大小响应式_做可交互的统计图表,这套图形语法不容错过
- 地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。
- python项目方案书模板格式_项目计划书格式范本word文档
- PS入门教程之字体的变形艺术
- Python自动化测试之PO模式
- 正版NOD32升级ID在线申请
- MS sqlserver数据库恢复出错 Exclusive access could not be obtained because the database is in use
- Android 设置APP桌面图标
- odoo14学习速记笔记
- 判断一个数是否是质数
热门文章
- 金色传说:SAP-PPDS-SAPAPO/RRP3增强:控制界面需求数量字段修改后检查增强/用户事件USERCOMMAND响应增强
- 什么是和谐操作系统? 华为新操作系统介绍
- java poi word bookmarks_poi根据word/excel模板(书签)创建导出word/excel文档
- 周跳探测——历元间差分法
- ubuntu系统Firefox浏览器B站视频无法播放
- 【每日英文】2021.8.5
- nginx.conf配置外部 .conf文件
- 矩阵的分解:满秩分解和奇异值分解
- 史上最全的信息收集总结!!!
- 如何简单可靠地装系统-软碟通