Python基础必掌握的文件读写操作详解
读取和写入文件等操作是 Python 可以完成的最常见任务之一。无论是写入简单的文本文件,读取复杂的服务器日志,甚至分析原始字节数据,进行相关的处理操作,最终所有这些情况都需要读取或写入文件。
整套学习自学教程中应用的数据都是《三國志》、《真·三國無雙》系列游戏中的内容。
文章目录
- 文件的基本概念
- 文件路径
- 行尾
- 字符编码
- 在 Python 中打开和关闭文件
- 文本文件类型
- 缓冲的二进制文件类型
- 原始文件类型
- 读写打开的文件
- 遍历文件中的每一行
- 字节操作
文件的基本概念
文件是一组用于存储数据的连续字节。这些数据以特定格式组织,可以是文本文件等简单的文件,也可以是可执行程序等复杂的文件。这些字节文件然后被翻译成二进制文件1,0 便于计算机进行处理。
文件包含三个部分:
- Header: 关于文件内容的元数据(文件名、大小、类型等)。
- Data: 由创建者或编辑者编写的文件内容。
- EOF: 表示文件结束的特殊字符。
数据表示的内容取决于所使用的格式规范通常由扩展名表示。例如扩展名为.jpg最有可能符合图形交换格式规范的文件但未必是图片文件。
扩展名有数百甚至数千个文件扩展名。这里介绍 .txt 和 .csv 扩展名。
文件路径
访问文件需要文件路径,文件路径由字符串组成。其中包括三个部分:
- 文件夹路径: 文件系统上的文件夹位置,后续文件夹由正斜杠 / (Unix) 或反斜杠 \ (Windows) 分隔。
- 文件名: 文件的实际名称。
- 扩展名: 文件路径的末尾以句点 ( .) 开头,用于指示文件类型。
行尾
行尾可以追溯到摩尔斯电码时代,当时使用特定的前符号来传达传输的结束或行的结束。
Windows 使用 CR+LF 字符来表示新行,而 Unix 和较新的 Mac 版本仅使用LF字符。这些符号都是不可见,但是可以操作。
# windows
Hello World\r\n
Dynasty Warriors\r\n
字符编码
未来还会面临的一个字符数据编码的问题。两种最常见的编码是ASCII和UNICODE格式。
- ASCII 只能存储 128 个字符。
- Unicode 最多可以包含 1,114,112 个字符。
在 Python 中打开和关闭文件
调用 open() 内置函数来完成,其中包含一个文件路径的文件关键参数。
file = open('data.txt')
调用 .close() 对打开的文件进行关闭。
file.close()
可以调用 with语句 在执行打开操作模块后自动进行关闭。
with open('data.txt', 'r') as f:.......
读写参数说明。
关键字 | 说明 |
---|---|
‘r’ | 打开阅读(默认) |
‘w’ | 打开写入,首先截断文件 |
‘a’ | 打开写入,如果存在则附加到文件的末尾 |
‘b’ | 二进制模式 |
‘t’ | 文本模式(默认) |
‘+’ | 打开磁盘文件进行更新(读写) |
‘U’ | 通用换行模式(为了向后兼容;不应在新代码中使用) |
读写参数组合。
模式 | 描述 |
---|---|
rt | 读取文本,默认模式 |
rb | 读取二进制数据 |
wt | 写入文本 |
wb | 写入二进制 |
r+ | 不清空原文件,读写 |
w+ | 清空原文件,并读写 |
a+ | 在文件末尾读写 |
文本文件类型
文本文件是您会遇到的最常见的文件。
# 打开方式举例
open('data.txt')
open('data.txt', 'r')
open('data.txt', 'w')type(file)
<class '_io.TextIOWrapper'>
缓冲的二进制文件类型
# 打开方式举例
file = open('abc.txt', 'rb') # 读
type(file)
<class '_io.BufferedReader'>
file = open('abc.txt', 'wb') # 写
type(file)
<class '_io.BufferedWriter'>
原始文件类型
file = open('abc.txt', 'rb', buffering=0)
type(file)
<class '_io.FileIO'>
读写打开的文件
读取文件可以调用的方法。
# size这最多从该行中读取多个字符。这一直持续到行尾,然后回绕。如果没有传递或传递参数None,-1则读取整行(或该行的其余部分)。
.readline(size=-1)
# 这将从文件对象中读取剩余的行并将它们作为列表返回。
.readlines()
.read(size=-1),size字节数从文件中读取。如果没有传递或传递参数None,-1则读取整个文件。
with open('data.txt', 'r') as f:print(f.read())
data data data
data data data
data data data
.readline(size=-1),从该行中读取多个字符。这一直持续到行尾,然后回绕。如果没有传递或传递参数None,-1则读取整行(或该行的其余部分)。
with open('data.txt', 'r') as f:print(f.readline(2))
data data data
data data data
.readlines(),这将从文件对象中读取剩余的行并将它们作为列表返回。
with open('data.txt', 'r') as f:print(f.readlines())
data data data
data data data
data data data
遍历文件中的每一行
.readline() 方法每次遍历一行。
with open('data.txt', 'r') as f:line = f.readline()while line != '':print(line, end='')line = f.readline()
data data data
data data data
data data data
.readlines() 方法返回一个列表,其中列表中的每个元素代表文件中的一行。
with open('data.txt', 'r') as f:for line in f.readlines():print(line, end='')
data data data
data data data
data data data# 或者简化操作
with open('data.txt', 'r') as f:for line in f:print(line, end='')
data data data
data data data
data data data
文件的读写是相对的,方法和读取一样。
with open('data.txt', 'r') as f:lines = f.readlines()f.write(lines)
字节操作
使用字节字符串处理文件。这是通过将 ‘b’ 字符添加到参数来完成的。
with open('data.jpg', 'rb') as f:print(f.readline())
b'\x89'
b'JPG'
b'\r\n'
b'\x1a'
b'\n'
Python基础必掌握的文件读写操作详解相关推荐
- IOS 文件读写操作详解及简单实例
iPhone 文件读写操作 1,写文件操作 - (IBAction)btnWrite:(id)sender {//创建文件管理器NSFileManager *fileManager = [NSFile ...
- python怎么读write_Python如何读写文件?python写入文件读写操作详解
Python文件的打开或创建可以使用函数open().该函数可以指定处理模式,设置打开的文件为只读.只写或可读写状态.open()的声明如下所示. open(file, mode='r', buffe ...
- C语言文件读写操作详解
C语言/C++中文帮助文档免积分下载(点击跳转) 当文件按指定的工作方式打开以后,就可以执行对文件的读和写.下面按文件的性质分类进行操作.针对文本文件和二进制文件的不同性质,对文本文件来说,可按字符读 ...
- JSON文件读写操作详解
目录 JSON介绍 JSON基本语法 数据 对象 数组 JSON文件写入 JSON文件读取 JSON介绍 JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量 ...
- Python 文件 IO 操作详解
Python 文件 IO 操作详解 1.文件 IO 常用操作 2.文件打开操作 2.1 打开命令 2.2 命令参数 2.2.1 路径 2.2.2 mode 2.2.3 buffering 缓冲区 2. ...
- python可以处理多大的数据_科多大数据之Python基础教程之Excel处理库openpyxl详解...
原标题:科多大数据之Python基础教程之Excel处理库openpyxl详解 科多大数据小课堂来啦~Python基础教程之Excel处理库openpyxl详解 openpyxl是一个第三方库,可以处 ...
- python的excell库_扣丁学堂Python基础教程之Excel处理库openpyxl详解
扣丁学堂Python基础教程之Excel处理库openpyxl详解 2018-05-04 09:49:49 3197浏览 openpyxl是一个第三方库,可以处理xlsx格式的Excel文件.pipi ...
- C++文本文件读写操作详解
C++文本文件读写操作详解 前面章节中,已经给大家介绍了文件流对象如何调用 open() 方法打开文件,并且在读写(又称 I/O )文件操作结束后,应调用 close() 方法关闭先前打开的文件.那么 ...
- java io类库,Java利用io类库对各种文件的操作详解
Java中文网 - Java利用io类库对各种文件的操作详解 java中提供了io类库,可以轻松的用java实现对文件的各种操作.下面就来说一下如何用java来实现这些操作. 新建目录 //Strin ...
最新文章
- vsftp和nfs服务
- HBase概念学习(八)开发一个类twitter系统之表设计
- redhat5.8+heartbeat+web+nfs(提供软件包)
- live联系人导出到CSV乱码
- opengl加载显示3D模型MDC类型文件
- halcon测试一张图片是否过曝或过暗
- selenium ruby和java_Selenium 2之Ruby版——安装篇
- mysql的事务语句_MySQL提供的事务控制语句
- 鹦鹉助手模拟器 梦幻西游 找不到服务器,模拟器玩梦幻 17173鹦鹉助手模拟器上线...
- h5移动端flexible源码适配终端解读以及常用sass函数
- java案例代码17--正则表达式小案例
- [软件工程基础]2017.10.30 第三次 Scrum 会议
- 21模块-orientation【管理设备的方向信息】
- 免费远程桌面连接工具
- 《手把手教你学DSP》总结1
- Mac 修改 hosts 文件
- 航天器平台二次电源系统的可靠性设计
- 崩溃日志保存本地log,服务器上传
- 数理化解题研究杂志数理化解题研究杂志社数理化解题研究编辑部2022年第34期目录
- linux xz命令
热门文章
- “xxx”does not name a type 错误
- 向量vector 中主要函数的使用
- 我开挂的 2018!
- Apache DolphinScheduler 开源之夏学生项目申请开启,6 大课题等你来拿万元奖金!
- 从二进制到逻辑门——哲学中诞生的计算理论
- 新手做无货源店群该如何准确运营?店铺精细化运营对店铺有什么影响?
- 年轻人,你的时间到哪啦?
- linux more 乱码,Linux 中vim/more/cat/tail/head 命令查看文件显示乱码
- Git常用命令学习手册
- Guava-RateLimiter秒杀限流技术详解