【文件读写&临时文件/目录】学习笔记

文件读写

文件的读写操作

with open('test.txt', 'w+', encoding='utf-8') as fn:  # 以'utf-8'格式,读写模式打开test.txt文件,若文件不存在,则创建
    fn.write('XXX')  # 在光标指向位置写入数据
    fn.seek(6)  # 将光标写在第6个字节处(光标指向的位置的就是接下来文件操作的位置)
    fn.read()  # 读出光标后的所有数据

常用的文件操作模式如下表:

符号描述
b二进制模式
+可读可写
r以只读方式打开文件,文件的指针将会放在文件的开头
rb以二进制格式打开一个文件用于只读
r+打开一个文件用于读写。文件指针将会放在文件的开头
rb+以二进制格式打开一个文件用于读写
w打开一个文件只用于写入。如果该文件已存在则打开文件,原有内容会被覆盖。如果该文件不存在,则创建新文件
wb以二进制格式打开一个文件只用于写入
w+打开一个文件用于读写。与 r+ 的区别在于若文件不存在 w+ 还会生成该文件
wb+以二进制格式打开一个文件用于读写
a追加写入,若该文件已存在,文件光标指向文件的结尾。若文件不存在,将创建新文件执行写入
ab以二进制格式打开一个文件用于追加
a+打开一个文件用于读写,与 w+ 的区别在于,以 a 模式打开的文件,光标会被指向文件结尾
ab+以二进制格式打开一个文件用于追加
临时文件/目录

临时文件的好处在于:文件在关闭后会自动被删除,在生成中间文件时方便处理。

from tempfile import TemporaryFile, TemporaryDirectory
# 建立临时文件夹,该临时文件夹会在程序运行结束后被自动删除
TemporaryDirectory()
# 建立临时文件,参数分别为模式,文件生成目录,后缀,是否在close()后被自动删除
TemporaryFile('w', dir=path, suffix='.txt', delete=False)
file_temp_file.py
# -*- coding: utf-8 -*-
from tempfile import TemporaryFile, TemporaryDirectory

with open('test.txt', 'w+', encoding='utf-8') as fn:  # 以'utf-8'格式,读写模式打开test.txt文件,若文件不存在,则创建
    fn.write('Hello World')  # 写入数据
    print(f'fn: {fn.read()}')  # 此时光标在写入的文件末尾(光标指向的位置的就是接下来文件操作的位置)
    fn.seek(6)  # 将光标写在第6个字节处
    print(f'fn: {fn.read()}')  # 读出光标后的所有数据,读出后,光标又会被写入文件末尾

dir_test = TemporaryDirectory()  # 建立临时文件夹,该临时文件夹会在程序运行结束后被自动删除
print(dir_test.name)

# 建立临时文件,参数分别为模式,文件生成目录,后缀,是否在close()后被自动删除
with TemporaryFile(mode='w', dir=dir_test.name, suffix='.log', delete=False) as fn:
    print(fn.file)

执行结果
fn: 
fn: World
C:\Users\xxx\AppData\Local\Temp\tmp3zj5xzf8
<_io.TextIOWrapper name=3 mode='w' encoding='cp936'>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值