我的Python学习日记(十一):文件

我的Python学习日记


DateLog
2023.12.21完成编写

11. 文件

基本函数:open()用于打开一个文件,并返回文件对象,如果该文件无法被打开,会导致OSError
语法格式:

open(file, mode='r', buffering = -1, encoding = None , errors = None , newline = None , closefd = True , opener = None)

参数说明:

  • file:必需,文件路径,一般是字符串
  • mode:可选,文件打开模式,常见模式点这里
  • buffering:可选,控制缓冲模式。
    • 0:关闭缓冲
    • 1:行缓冲(只在文本模式有意义)
    • >1的整数:缓冲区大小
    • 负数:使用系统默认缓冲
  • encoding:可选,指定文件的字符编码,比如utf-8,不指定将使用默认编码
  • errors:可选,指定编解码时的错误处理策略
    • ‘strict’:默认,引发 UnicodeDecodeError 或 UnicodeEncodeError
    • ‘ignore’:忽略错误
    • ‘replace’:用 Unicode 替代字符替换错误
  • newline:可选,用于控制文本模式下的换行符,可以是 None(使用系统默认值),''(表示所有换行符都会被转换为'\n'),'\n'(表示换行符不会被转换)等
  • closefd:可选,如果为 True,表示在文件对象关闭时同时关闭底层的文件描述符。如果为 False,则文件描述符将保持打开状态。
  • opener:可选,用于自定义打开文件的函数。如果指定了,必须是一个可调用对象,接受两个参数(file 和 flags),并返回一个打开的文件对象

常见打开模式 mode

mode描述
‘r’读取模式(默认)
指针会放在文件开头
‘w’写入模式,会截断已存在的文件,或者创建新文件
‘+’打开一个文件进行更新(可读可写)
‘x’独占创建模式,用于在文件不存在时创建文件
如果文件已存在,会引发 FileExistsError 异常。
‘a’追加模式,将数据写入到文件末尾
打开文件时,文件指针会定位到文件的末尾
如果文件不存在,将会创建一个新文件
‘b’二进制模式,在读取或写入文件时处理文件的二进制数据而不是文本数据
与读写模式组合,如wb:二进制写入模式
‘t’文本模式(默认)

11.1 file常用方法

方法描述
file.write(str)将字符串str内容写入文件,返回写入字符的长度
file.flush()将文件缓冲区中的数据立即写入到文件中,而不等到文件对象被关闭
file.read(num)读取文件中num个字符数,如果未指定或为负数则读取文件所有内容
返回从字符串中读取的字节
file.seek(offset,hence)将指针移到指定位置
offset:开始的偏移量,如果是负数则表示倒数第x位
hence:可选,表示要从哪个位置开始偏移,默认为0:从开头算起,1表示从当前位置算起,2表示从文件末尾算起
file.readline(num)用于从指针处读取整行
num可选,返回num大小的字节数
file.readlines(num)用于读取所有行直到EOF并返回列表,碰到EOF返回空列表
file.tell()返回文件指针当前位置。

11.2 os 文件/目录方法

需要import os

常用方法描述
os.listdir(path)返回指定目录下的所有文件和目录的列表。
os.mkdir(path)创建新的目录。
os.makedirs(path)递归创建新的目录。
os.remove(path)删除文件。
os.rename(src, dst)重命名文件或目录。
os.stat(path)返回文件或目录的状态信息。
os.environ包含环境变量的字典。
os.getenv(key, default)返回指定环境变量的值。
os.system(command)在子shell中执行系统命令。
os.getcwd()返回当前工作目录。
os.chdir(path)改变当前工作目录。
os.getpid()返回当前进程的进程ID。
os.sep路径分隔符。
os.pathsep路径分隔符(在os.path模块中使用)。
os.linesep行分隔符。
  • 19
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

HIT-Zxy

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

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

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

打赏作者

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

抵扣说明:

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

余额充值