目录
文件操作简介
文件操作:
通过编写代码自动操作文件读写
什么是文件:
打开文件,双击文件图标是从硬盘加载数据带内存
保存文件,就是将内存中的数据刷到硬盘
PS:文件实际就是操作系统暴露给用户操作计算机硬盘的快捷方式之一
打开文件的俩种方式
方式一:
open(文件路劲,读写模式,字符编码)
方式二:
with open() as 变量名:
子代码运行结束之后自动调用close()方法
'''
1.with语法支持一次性打开多个文件,with open() as 变量名,open() as 变量名,open() as 变量名...:
2.python的补全语法,但是实际不执行任何操作,只是放在那里,补充语法
其中有: pass 推荐使用
..., 不推荐使用
'''
文件路劲注意事项:可能存在特殊含义(字母与撬棍的组合),在字符串的前面加字母r即可取消特殊含义
文件读写模式
r-----只读模式(默认模式):
使用该模式打开的文件只能读取内容 不能写、追加的其他操作
# 文件路径不存在: r模式直接报错
# with open(r'aaa.txt', 'r', encoding='utf8') as f:
# pass
# 文件路径存在: r模式会打开文件等待读取文件内容
with open(r'aaa.txt', 'r', encoding='utf8') as f:
print(f.read())
# f.write('123')
如果在只读模式下想要执行写的操作,文件不能正常的运行,not writable指的是不能够进行些的操作 ,able结尾的就是指能不能具备它前面单词的操作
w----只写模式:
使用该模式打开的文件只能写内容,不能读取
# 文件路径不存在: w模式会自动创建该文件
# with open(r'aaa.txt', 'w', encoding='utf8') as f:
# pass
# 文件路径存在: w模式会清除原来文件的内容,之后等待填写新的内容
with open(r'aaa.txt', 'w', encoding='utf8') as f:
pass
a----只追加模式:
使用该模式打开的文件默认是在末尾追加新的内容,不能做其他操作(读)
# 文件路径不存在: a模式会自动创建该文件
# with open(a'aaa.txt', 'a', encoding='utf8') as f:
# pass
# 文件路径存在: a模式不会清除原来文件的内容,在文件末尾等待写入新内容
with open(r'aaa.txt', 'a', encoding='utf8') as f:
pass
文件操作模式
t----文本模式(文件操作的默认模式)
注意:只能操作文本文件,文档类型的,不能操作图片、音频等。
必须指定encoding参数
读写都是以字符串为单位
b----二进制模式
注意:用这个模式的时候必须自己指定不能省略,rb、wb、ab
能够操作所有类型的文件
不需要指定encoding参数
读写都是以bytes为单位
拷贝功能
# 文本模式copy文件,只能copy文本文件
with open(r'aaa.txt', 'r', encoding='utf8') as f:
data = f.read()
with open(r'bbb.txt', 'w', encoding='utf8') as f:
f.write(data)
# 使用二进制模式可以copy任何文件
with open(r'111.jpg', 'rb') as read_f, open(r'222.jpg', 'wb') as write_f:
# data = read_f.read()
# write_f.write(data)
write_f.write(read_f.read())
文件的诸多操作方法
通过.可以提示好多方法
'''
文件对象支持for循环一次只读一行
每次循环只读一行,没有任何绑定,每次执行完就会被垃圾回收装置回收,不会浪费内存
'''
with open(r'aaa.txt', 'r', encoding='utf8') as f:
for i in f:
print(i)
print('..........')
...
'''
理论上会出现俩次文本内的信息
一次性读取文件内容的时候光标会停留在文件末尾,继续读则为空
'''
with open(r'aaa.txt', 'r', encoding='utf8') as f:
data = f.read()
print(data)
data1 = f.read()
print(data1)
'''
.readline()一次只能读一行内容
'''
with open(r'aaa.txt', 'r', encoding='utf8') as f:
data = f.readline()
print(data)
data1 = f.readline()
print(data1)
'''
.readlines()按照行的方式读取所有内容并组织成列表返回
'''
with open(r'aaa.txt', 'r', encoding='utf8') as f:
data = f.readlines()
print(data)
'''
.readable()判断当前文件是否可读
'''
with open(r'aaa.txt', 'r', encoding='utf8') as f:
data = f.readable()
print(data)
'''
.writable()判断当前文件是否可写
'''
with open(r'aaa.txt', 'r', encoding='utf8') as f:
data = f.writable()
print(data)
'''
.write()每次执行都会清空内容
'''
with open(r'aaa.txt', 'w', encoding='utf8') as f:
f.write('要吃中午饭了')
'''
.writelines()支持填写容器类型(内部有多个数据值的类型)
'''
'''
.flush()将内存中的文件数据立即刷到硬盘,主动按ctrl+s
'''
标签:文件,encoding,python,utf8,模式,操作,txt,open
From: https://www.cnblogs.com/wxlxl/p/17060721.html