Python-文件操作
文件操作
打开文件
-
open(file, mode='r', encoding=None, errors=None)
- file: 表示要打开的文件, 可以是字符串或整数.
- mode: 设置文件打开模式. 可以进行组合(如mode='rt', 只读文本文件).
- encoding: 指定打开文件时的文件编码, 默认是UTF-8, 主要用于打开文本文件.
- errors: 指定在文本文件发生编码错误时如何处理. errors="ignore", 表示忽略错误,程序继续执行.
f = open('test.txt', 'w') write("Hello") print("1. 创建文件, 写入Hello") f = open('test.txt', 'a') f.write(" World") print("2. 追加 World") 文件打开模式 说明 mode='t' 文本文件模式. mode='b' 二进制文件模式. mode='r' 只读模式. mode='w' 只写模式,不能读内容. 如果文件不存在, 则创建文件; 如果文件存在, 则覆盖文件的内容. mode='x' 独占创建模式. 如果文件不存在, 则创建并以写入模式打开; 如果文件存在, 则引发FileExistsError异常. mode='a' 追加模式, 不能读内容. 如果文件不存在, 则创建文件; 如果文件存在, 则在文件末尾追加. mode='+' 更新(读写)模式, 必须与r, w或a组合使用, 才能设置文件为读写模式.
关闭文件
-
close()
: 在打开文件后, 如果不再使用该文件, 则需将其关闭.f_name = "test.txt" f = None try: f = open(f_name, 'r') print("打开文件成功. ") content = f.read() print(content) except FileNotFoundError: print("文件不存在! ") except OSError: print("处理OSError异常") finally: if f is not None: f.close() print("文件已关闭. ") -
with as
代码块: 在as后面声明一个资源变量, 代码块结束后自动释放资源.f_name = "test.txt" with open(f_name, 'r') as f: content = f.read() print(content)
读写文本文件
-
read(size=-1)
: 从文件中读取字符串. size限制读取的字符数, 默认没有限制. -
readline(size=-1)
: 在读取到换行符或文件尾时返回单行字符串. 如果已经到文件尾, 则返回一个空字符串. -
readlines()
: 读取文件数据到一个字符串列表中, 每一行数据都是列表的一个元素. -
write(s)
: 将字符串s写入文件, 并返回写入的字符数. -
writelines(lines)
: 向文件中写入一个字符串列表. 不添加行分隔符, 因此通常为每一个末尾都提供行分隔符, -
flush()
: 刷新写缓冲区, 在文件没有关闭的情况下将数据写入文件中.f_name = r"test.txt" with open(f_name, 'r', encoding='gbk') as f: lines = f.readlines() print("读取成功: ") print(lines) copy_name = r"copy.txt" with open(copy_name, 'w', encoding='utf-8') as c: c.writelines(lines) print("写入成功") # 读取成功: # ['Hello. \n', 'My name is Khru. \n', 'Nice to meet you! \n', '浣犲ソ. '] # 写入成功
读写二进制文件
f_name = "screen.png" with open(f_name, 'rb') as f: b = f.read() copy_name = "screen1.png" with open(copy_name, 'wb') as c: c.write(b)
本文作者:Khru
本文链接:https://www.cnblogs.com/khrushchefox/p/16647235.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步