- images
- results
- .gitignore
- 1.1概论.ipynb
- 1.2 环境配置.pdf
- 1.3数据类型.ipynb
- 1.4 人机交互.ipynb
- 1.5 对象与变量.ipynb
- 1.6 编码与命名规范.ipynb
- 2.1 数值类型.ipynb
- 2.2 数值类型转换.ipynb
- 2.3 数值元算.ipynb
- 2.4常用数学运算函数.ipynb
- 2.5 math 模块及其应用.ipynb
- 2.6.1 逻辑值测试.ipynb
- 2.6.2 成员运算.ipynb
- 2.6.3 比较运算.ipynb
- 2.6.4 布尔运算.ipynb
- 2.6.5 运算优先级.ipynb
- 2.ipynb
- 3.1 流程控制结构.ipynb
- 3.3.1 for 循环语句.ipynb
- 3.3.3 rang.ipynb
- 3.3.3 while 循环语句.ipynb
- 3.4 and 3.5 分支结构和条件.ipynb
- 3.6 and 3.7 .ipynb
- 3.9 异常处理.ipynb
- 4 函数和模块化编程.ipynb
- 4.1 函数的定义、调用与返回值.ipynb
- 4.2 函数的参数传递.ipynb
- 4.3 变量的作用域.ipynb
- 4.4 匿名函数.ipynb
- 4.5 递归.ipynb
- 4.6 内置函数.ipynb
- 4.7 模块化程序设计.ipynb
- 5.1 序列通用操作.ipynb
- 5.1.1 索引.ipynb
- 5.1.2 切片.ipynb
- 5.1.3 序列拼接与重复.ipynb
- 5.1.4 成员测试.ipynb
- 5.2.1 字符串的创建.ipynb
- 5.2.2 字符串常量.ipynb
- 5.2.4 字符串的遍历.ipynb
- 5.2.5 文件遍历.ipynb
- 5.2.6 字符串的处理方法.ipynb
- 5.2.7 字符串格式化.ipynb
- 5.2.8 转义字符.ipynb
- 5.3 random 模块及其应用.ipynb
- 6.1 元组.ipynb
- 6.2 列表.ipynb
- 6.2.1 列表的创建.ipynb
- 6.2.2 列表的更新.ipynb
- 6.2.3 列表的删除.ipynb
- 6.2.4 列表的排序.ipynb
- 6.2.5 列表赋值与复制.ipynb
- 6.2.6 列表推导式.ipynb
- 6.2.8 常用内置函数.ipynb
- 6.2.9 列表嵌套及其排序.ipynb
- 6.3 列表综合应用.ipynb
- 7.1.1 集合的创建.ipynb
- 7.1.2可变集合类型的操作.ipynb
- 7.1.3 成员关系.ipynb
- 7.1.4 集合关系.ipynb
- 7.1.5 集合运算.ipynb
- 7.2.1 字典创建.ipynb
- 7.2.2 获取字典值.ipynb
- 7.2.3 修改字典值.ipynb
- 7.2.4内置函数与方法.ipynb
- 7.2.5字典排序输出.ipynb
- 7.3 集合与字典的应用.ipynb
- 8 中 numpy 概述.ipynb
- 8 中panda 库.ipynb
- 8.1 文件的打开与关闭.ipynb
- 8.2 文件读写操作.ipynb
- 8.3 文件的应用.ipynb
- 8.4 numpy 文件操作.ipynb
- 8.4.2 and 3.ipynb
- 8.5.1 pandas文件读写.ipynb
- 8.5.2 and 3 and 4.ipynb
- 9.1 matplotlib 线性图.ipynb
- 9.1.5 数据文化绘图.ipynb
- 9.2 非线性图.ipynb
- 9.3 词云.ipynb
- _overview.md
- _readme.ipynb
- coding_here.ipynb
- dream.png
- score.txt
- score_total.csv
- 成绩分析综合.json
8.1 文件的打开与关闭.ipynb @master — view markup · raw · history · blame
文件的打开与关闭¶
不论是文本文件还是二进制文件,文件进行写入或读取操作,一般都可以分为以下三步:
(1)打开文件并创建文件对象;open()
(2)通过文件对象对文件中的内容进行读取和写入等操作;
(3)关闭并保存文件内容。close()
In [ ]:
fr = open(file, mode='r', encoding=None) # fr为变量名,是用户为文件对象所命名字
fr.close() # 关闭所创建的文件对象,fr为文件对象名
内容管理器由关键字“with”和“as”联合启动,将文件打开操作置于内容管理器中,不需要用f.close()显式的关闭文件
In [ ]:
with open(file, mode='r', encoding=None) as fr: # fr为变量名,是用户为文件对象所命名字
pass # 在缩进区域写对文件对象进行操作的语句
使用绝对路径时,若反斜杠与后面字符可构成转义字符时,需使用两个反斜杠表示。
In [ ]:
'c:\temp\next.txt'
print('c:\temp\next.txt')
# 输出结果为:
# c: emp
# ext.txt
# “\t”是转义字符,所以需要写成
'c:\\temp\\next.txt'
print('c:\\temp\\next.txt') # 输出结果为: c:\temp\next.txt
或是在路径字符串前面加“r”,明确告诉编译器这个字符串是个原生字符串,不要转义,从而避免解析错误。
In [ ]:
print('c:\temp\next.txt')
# 输出结果为:
# c: emp
# ext.txt
# 前面加r构建原生字符串,不转义
print(r'c:\temp\next.txt') # 输出结果为: c:\temp\next.txt
mode 参数是可选参数,用于指定文件打开的方式和类型
该参数可以使用的符号包括:
'r'、'w'、'x'、'a'、'b'、't'、'+'
| 符号 | 含义 |
|---|---|
| 'r' | 以只读模式打开文件(默认值) |
| 'w' | 以写数据模式打开文件,该文件已存在,先清除该文件中所有内容;该文件不存在,先创建该文件再打开。 |
| 'x' | 以创建文件写数据模式打开文件,该文件已存在,打开失败。 |
| 'a' | 以追加写数据模式打开文件,该文件已存在,新数据追加在现有数据之后;该文件不存在,先创建文件后在打开。 |
| 'b' | 以二进制模式打开文件处理数据 |
| 't' | 以文本模式打开文件处理数据(默认模式) |
| '+' | 打开文件并允许更新,相当于增加读或写模式(与 'r'、'w' 或 'a' 组合使用,如 'r+'可读可写、'w+'可写可读、'a+'可追加写,可读) |
In [2]:
new = open('images/ch8/What is New in Python3.11.txt') # 以读模式打开文件,创建文件对象,命名为new
print(new.read()) # 读文件为字符串输出
new.close() # 关闭文件对象
In [5]:
with open('images/ch8/What is New in Python3.11.txt') as new: # 以读模式打开文件,创建文件对象,命名为new
print(new.read()) # 读文件为字符串输出
# 退出缩进时自动关闭文件
In [3]:
fr = open('images/ch8/9.1 出塞.txt', 'r', encoding='utf-8') # 打开文件创建文件对象,命名为fr
print(fr.read()) # 读文件为字符串输出
fr.close() # 关闭文件对象
In [9]:
fr = open('images/ch8/9.1 出塞.txt', 'r', encoding='utf-8') # 打开文件创建文件对象,命名为fr
for a in fr: # 对文件对象进行逐行遍历
print(a) # 行末的换行符会输出一个空行
fr.close() # 关闭文件对象
In [12]:
fr = open('images/ch8/9.1 出塞.txt', 'r', encoding='utf-8') # 打开文件创建文件对象,命名为fr
for line in fr: # 对文件对象进行逐行遍历
print(line.strip()) # line.strip()函数去掉行末的换行符,消除空行
fr.close() # 关闭文件对象
In [4]:
# 用上下文管理器实现,不需要显示关闭文件,避免异常
with open('images/ch8/9.1 出塞.txt','r',encoding = 'utf-8') as poem: # 打开文件创建文件对象,命名为poem
print(poem.read()) # 读文件为字符串输出
In [ ]:
# 用上下文管理器实现,不需要显示关闭文件,避免异常
with open('images/ch8/9.1 出塞.txt','r',encoding = 'utf-8') as poem: # 打开文件创建文件对象,命名为poem
for line in poem: # 对文件对象进行逐行遍历
print(line.strip()) # line.strip()函数去掉行末的换行符,消除空行
In [ ]:
def open_file(file):
"""接收表示文件名的字符串变量,打开文件,遍历读取文件并输出其内容"""
with open(file,'r',encoding = 'utf-8') as poem: # 打开文件创建文件对象,命名为poem
for line in poem: # 对文件对象进行逐行遍历
print(line.strip()) # line.strip()函数去掉行末的换行符,消除空行
if __name__ == '__main__':
filename = 'images/ch8/9.1 出塞.txt' # 文件名定义变量,方便修改
open_file(filename) # 调用函数读取并输出文件内容
In [ ]: