• 读取整个文件
    操作文件的第一步就是得打开要操作的文件,然后进行读取。在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 文件读取相关推荐

  1. python读取文件读不出来-python文件读取失败怎么处理

    在读取文件时候比如读取 xxx.csv 时候 可能报编码错误 类似于 'xxx' codec can't decode byte 0xac in position 211: illegal multi ...

  2. python 文件读取错误之FileNotFoundError: [Errno 2] No such file or directory:,顺便学习斜杠/和反斜杠\的用法

    python 文件读取错误之FileNotFoundError: [Errno 2] No such file or directory:,顺便学习斜杠/和反斜杠\的用法: 最近学习文件读取和中文分词 ...

  3. python文件读取操作练习题(统计单词)

    python文件读取操作练习题(统计单词) 学习路线:python的文件读取基础入门(read(),readlines(),with.open()) ->python文件读取操作练习题(统计单词 ...

  4. python文件读取数据-Python从文件中读取数据

    一.读取整个文件内容 在读取文件之前,我们先创建一个文本文件resource.txt作为源文件. resource.txt my name isjoker, I am18years old, How ...

  5. 一文贯通python文件读取

    不论是数据分析还是机器学习,乃至于高大上的AI,数据源的获取是所有过程的入口. 数据源的存在形式多为数据库或者文件,如果把数据看做一种特殊格式的文件的话,即所有数据源都是文件.获得数据,就是读取文件的 ...

  6. 一文贯通python文件读取 1

    版权声明:本文为半吊子子全栈工匠(wireless_com,同公众号)原创文章,未经允许不得转载. https://blog.csdn.net/wireless_com/article/details ...

  7. python文件读取模式_day-2 python 文件读写模式r,r+,w,w+,a,a+的区别

    r+和w+都是可读可写,区别在于r+读文件时,不会覆盖之前的内容,之前的内容能够读出来:w+读时,会覆盖之前的内容:所以读文件时,用r或者r+ #读操作 r 1 filepath = 'aa.log' ...

  8. 【python文件读取】加密数据的读取

    问题引出 当我们程序中要用到账号,密码等一些敏感信息时,别人一眼就能看得到这些信息的时候,该怎么操作才能避免敏感信息被泄露呢?对了,我们不妨把信息写到文件里,通过获取文件中设定好的数据来起到数据保密的 ...

  9. python文件读取方法read(size)的含义是_Python file read()方法

    在计算机中,文件包括了文档.图片.视频.程序组件等,每个类型的文件都有不同的作用或功用.例如一个程序通常由主程序.动态库.配置文件等组成,这些也是文件,起到支持程序运行的作用.想要使用文件,第一个操作 ...

  10. python文件读取下一个字符_python文件的读写总结

    读写文件是最常见的IO操作.Python内置了读写文件的函数,用法和C是兼容的. 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘, ...

最新文章

  1. java中main方法前的public static void及其后面的(String[] args)【笔记自用】
  2. git 删除tag_Git 基本应用
  3. 第七节 VMware View 6.0 菜鸟入门 Composer 安装和部署
  4. 使用mp4v2将aac音频h264视频数据封装成mp4开发心得
  5. form:radiobuttons单选按钮i-check选中触发
  6. Java Web学习总结(23)——Distributed Configuration Management Platform(分布式配置管理平台)
  7. Linux设备驱动01:Linux设备驱动概述
  8. 阿里云公布IP地理位置库抄袭调查结果;华为云电脑8月16日将停止服务和运营;Chrome 92发布|极客头条...
  9. AWS学习笔记(四)--CLI创建EC2时执行脚本
  10. 网络生活催生新式词汇
  11. antv图表 根据屏幕大小响应式_做可交互的统计图表,这套图形语法不容错过
  12. 地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。
  13. python项目方案书模板格式_项目计划书格式范本word文档
  14. PS入门教程之字体的变形艺术
  15. Python自动化测试之PO模式
  16. 正版NOD32升级ID在线申请
  17. MS sqlserver数据库恢复出错 Exclusive access could not be obtained because the database is in use
  18. Android 设置APP桌面图标
  19. odoo14学习速记笔记
  20. 判断一个数是否是质数

热门文章

  1. 金色传说:SAP-PPDS-SAPAPO/RRP3增强:控制界面需求数量字段修改后检查增强/用户事件USERCOMMAND响应增强
  2. 什么是和谐操作系统? 华为新操作系统介绍
  3. java poi word bookmarks_poi根据word/excel模板(书签)创建导出word/excel文档
  4. 周跳探测——历元间差分法
  5. ubuntu系统Firefox浏览器B站视频无法播放
  6. 【每日英文】2021.8.5
  7. nginx.conf配置外部 .conf文件
  8. 矩阵的分解:满秩分解和奇异值分解
  9. 史上最全的信息收集总结!!!
  10. 如何简单可靠地装系统-软碟通