十二、文件操作

学习目标

  • 能够打开文件并对文件进行读写操作
  • 能够操作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
  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ModelBulider

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值