文章目录
学习目标
- 能够打开文件并对文件进行读写操作
- 能够操作csv文件
- 能够将数据写入到内存中暂存
- 能够完成拷贝文件的练习
- 能够实现文件的序列化和反序列化
- 能够处理程序中的异常
- 能够说出with关键字的作用
- 能够在程序运行中抛出自定义异常
一、文件的打开和关闭
1.1 打开文件
# python 里使用 open 内置函数打开并操作一个文件
# open() 参数介绍
# file:用来指定打开文件(不是文件的名字,而是文件的路径)
# mode:打开文件的模式,默认是 r 表示只读。
# encodeing:打开文件时的编码方式
# open函数会有一个返回值,打开的文件对象
# xxx.txt 写入时,使用的 utf-8 编码格式
# 在windows操作系统里,默认使用 gbk 编码格式打开文件
# 解决方案:写入和读取使用相同的编码格式
file = open('xxx.txt',encoding='utf-8')
print(type(file)) # TextIOWrapper
print(file.read())
file.close() # 操作完成文件以后,关闭文件
1.2 文件的路径
# 路径分为两种
# 1. 绝对路径:从电脑盘符开始的路径
import os
# 在window系统里,文件夹之间使用 \ 分隔
# 在非windows系统里,文件之间使用 / 分隔
print(os.seq)
# 在Python字符串里,\ 表示转义字符
# 路径书写的三种方法:1. \\ 2.r'\' 3. '/'(推荐)
# file = open('c:\\Users\\chris\\Desktop\\xxx.txt')
# file = open(r'c:\Users\chris\Desktop\xxx.txt')
file = open('c:/Users/chris/Desktop/xxx.txt')
# 2. 相对路径:当前文件所在文件夹开始的路径
# ../ 表示返回到上一级文件夹
# ./ 可以省略不写,表示当前文件夹
# / 不能随便写
file = open('../sss.txt')
file = open('xxx.txt')
1.3 文件的打开方式
# mode 指的是文件的打开方式(默认 rt)
# r:只读模式,默认,打开文件以后,只能读取,不能写入。如果文件不存在会报错
# w:写入模式,打开文件以后,只能(覆盖的方式)写入,不能读取。如果文件存在,会覆盖文件;如果文件不存在,会创建文件
# b:以二进制的形式打开文件,可以用来操作非文本文件
# rb:以二进制读取 wb:以二进制写入
# a:追加模式,会在最后追加内容。如果文件不能存在,会创建文件;如果文件存在,会追加
# r+:可读写
# w+:可读写
# t:以文本模式打开(默认模式)
file = open('xxx.txt','r')
print(file.read())
# file.write('hello') # 不能执行写入操作,会报错
# file = open('xs.txt','r') # 文件不存在时,会报错
file = open('xxx.txt','w')
# file.read() # 不能够执行读取,会报错
file.write('hello') # 文件存在时,会覆盖写
file = open('xs.txt','r') # 文件不存在时,会创建
file = open('xxx.txt','wb')
# file.write('大家好才是真的好') # 报错,只能写入二进制
file.write('大家好才是真的好'.encode('utf-8'))
file.close()
二、文件的读取和写入
file = open('sss.txt',encodeing = 'utf-8')
print(file.read()) # 将所有的数据都读取出来
print(file.readline()) # 只读取一行数据
print(file