python day06 文件处理
1.什么是文件
文件是操作系统提供给用户或者应用程序的一种操作硬盘的机制/功能
文件以二进制存到硬盘,当以文本格式取出时要定义编码格式(与写入时的编码一致)
2.为何要用文件
应用程序————>打开文件
操作系统————>文件
计算机硬件———>硬盘
文件操作的基本流程
-
应用程序打开文件,拿到一个文件对象/文件句柄
-
调用文件句柄下的读、写操作
-
关闭文件,回收操作系统资源
# 一、文件操作的基本流程
f = open(r'D:\pythondir\stu\time.html', 'r', encoding='utf-8')
print(f)
res= f.read()
print(res)
f.close() # 关闭操作系统对文件的控制但句柄还在
print(f)
f.read()
del f # 删除句柄
>>>><_io.TextIOWrapper name='D:\\pythondir\\stu\\time.html' mode='r' encoding='utf-8'>
>>>>aaa,bbb
>>>><_io.TextIOWrapper name='D:\\pythondir\\stu\\time.html' mode='r' encoding='utf-8'>
>>>>ValueError: I/O operation on closed file.
# 二、上下文管理
with open('demo2.py', 'r', encoding='utf-8') as f:
res = f.read()
print(res)
文件的mode:
控制文件读写操作的模式
r (默认)
w
a
控制文件读写内容的模式
t (默认),无论读写都是以字符串为单位的,必须指定encoding编码,只针对文本文件
b binary,无论读写都是以二进制(会自动转化为bytes类型)为单位的,一定不能指定encoding,可以针对任何文件。
-
r:只读模式:文件不存在则报错,文件存在文件指针则跳到文件开头
-
w:只写模式,文件不存在则直接创建空的文档文件指针位于文件开头,文件存在则清空文件指针处于文件开头
-
a:只追加写,文件不存在则创建空的文档文件指针位于文件末尾,文件存在则不清空文件文件指针处于文件末尾
"""
# 一 文件操作的基本流程
# f = open('D:/python17期/day08/代码/aaa/a.txt',mode='rt',encoding="utf-8") # windows默认:gbk
# # print(f)
# res = f.read()
# print(res)
#
# f.close()
# # print(f)
# # f.read()
#
# del f
# 二 上下文管理
# with open('aaa/a.txt',mode='rt',encoding="utf-8") as f,\
# open(...) as f1,\
# open(...) as f2:
# f.read()
# f1.read()
# f2.read()
# with open('aaa/a.txt',mode='rt',encoding="utf-8") as f:
# print(f.read())
# 文件的mode:
# 控制文件读写操作的模式
# r(默认的)
# w
# a
# 控制文件读写内容的模式
# t(默认的)
# b
# 1、r:只读模式,文件不存在则报错,文件存在文件指针则跳到文件开头
# with open('aaa/a.txt',mode='rt',encoding="utf-8") as f:
# print(f.read())
# # 2、w:只写模式,文件不存在则创建空文档文件指针处于文件开头,文件存在则清空文件指针处于文件开头
# with open('aaa/a.txt',mode='wt',encoding="utf-8") as f:
# # f.write("你好\n")
# # f.write("哈哈哈\n")
# # f.write("我擦嘞\n")
# f.write("撒打发士大夫")
# 3、a:只追加写模式,文件不存在则创建空文档文件指针处于文件末尾,文件存在则指针处于文件末尾
# with open('aaa/a.txt',mode='at',encoding="utf-8") as f:
# f.write("你好1\n")
# f.write("你好2\n")
# f.write("你好3\n")