文件操作
一、文件操作
1.计算机数据的存储
"""
计算机的存储系统分为 运行内存 和 硬盘 两种:
运行内存:用来保存程序运行过程中产生的数据,程序运行结束后会自动销毁
硬盘: 硬盘是用来保存文件的,保存在文件中的数据就是保存在硬盘中的。除非手动删除,否则数据会一直存在
"""
2.数据持久化
"""
数据持久化就是讲数据以各种形式保存到硬盘中(保存到本地文件中)
"""
3.文件操作
"""
文件操作基本步骤:打开文件 -> 操作文件(读、写) -> 关闭文件
"""
# 1)打开文件
"""
open(file, mode='r', encoding=None) - 以指定的模式打开指定文件并且返回一个文件对象
说明:
a. file - 文件路径,字符串类型
绝对路径:文件/文件夹的全路径 (一般不写绝对路径)
相对路径:只写文件绝对路径的一部分,另外一部分用特殊符号代替
./ - 表示当前目录(当前写代码的文件所在的文件夹), 可以省略
../ - 表示当前目录的上层目录
.../ - - 表示当前目录的上层目录的上层目录
..../
...../
"""
# 绝对路径
open(r'/Users/yuting/授课/python2002/01语言基础/day14-文件操作/files/text.txt')
# 相对路径: ./
open('./files/text.txt')
open('./text2.txt')
open('files/text.txt')
# 相对路径:../
open('../day14-文件操作/files/text.txt')
"""
b. mode - 打开方式,字符串类型
第一组:控制操作类型
r - 以只读的方式打开文件(默认值)
w - 以只写的方式打开文件(打开前会先清空原文件中的内容)
a - 以只写的方式打开文件;
第二组:控制数据类型(文本-str/二进制数据-bytes)
t - 操作的数据是文本数据(默认)
b - 操作的数据是二进制数据
注意:每一组值只选一个,两组值进行组合使用
"""
# 情况一:r、rt
# f = open('files/text.txt', 'rt')
# content = f.read()
# # f.write('abc') # io.UnsupportedOperation: not writable
# print(content)
# print(type(content)) # <class 'str'>
# 情况二:rb
# f = open('files/text.txt', 'rb')
# content = f.read()
# print(content)
# print(type(content)) # <class 'bytes'>
# 情况三:wt
# f = open('files/text.txt', 'w')
# # f.read() # io.UnsupportedOperation: not readable
# f.write('abc123')
# 情况四:at
# f = open('files/text.txt', 'a')
# # f.read() # io.UnsupportedOperation: not readable
# f.write('你好吗?')
# 情况五:wb
f = open('files/text.txt', 'wb')
f.write(b'how are you!') # TypeError: a bytes-like object is required, not 'str'
f.write(bytes('你好!', encoding='utf-8'))
"""
c. encoding - 文本编码方式; 直接写 'utf-8'
注意:如果打开方式中带 b , 不能设置 encoding
"""
# open('files/text.txt', 'rb', encoding='utf-8') # ValueError: binary mode doesn't take an encoding argument
f = open('files/text.txt'