文件操作基础
概述
操作系统通过文件来管理数据,这一机制也常被称为文件管理系统。无论是Windows、Mac还是Linux,都提供了对文件的操作接口。文件操作的基本步骤包括打开文件、读写数据、关闭文件。
文件操作的步骤
- 打开文件:使用
open()
函数,指定文件路径、模式和码表(可选)。 - 读写数据:根据打开文件的模式(只读、只写、追加等),使用相应的函数(如
read()
,write()
,readline()
,readlines()
等)进行数据的读取或写入。 - 关闭文件:使用
close()
方法确保文件被正确关闭,释放系统资源。
涉及到的函数
open(文件的路径, 模式, 码表='utf-8')
- 文件的路径:可以是绝对路径或相对路径。绝对路径以盘符(Windows)或根目录(Linux/Mac)开头;相对路径则是相对于当前项目目录的路径。
- 模式:
r
:只读模式,默认模式,操作字符。rb
:只读模式,操作字节。w
:只写模式,覆盖写入。wb
:只写模式,操作字节,覆盖写入。a
:追加模式,操作字符。ab
:追加模式,操作字节。
- 码表:用于字符与整数之间的转换,如
'utf-8'
、'gbk'
等。
读取数据
read(num)
:读取指定数量的字节(或字符),如果不指定num
,则读取全部内容。readline()
:读取一行数据,并返回一个字符串。readlines()
:读取所有行,每行作为一个字符串存入列表中。
写数据
write(data)
:写入指定的数据到文件中。writelines(container)
:将容器(如列表)中的多个字符串写入文件,不会自动添加换行符。
关闭文件
close()
:关闭文件,释放系统资源。
文件拷贝(备份)案例
src_file = 'source.txt'
dest_file = 'destination.txt'
try:
with open(src_file, 'rb') as src_f, open(dest_file, 'wb') as dest_f:
while True:
data = src_f.read(8192) # 每次读取8192字节
if not data:
break
dest_f.write(data)
except Exception as e:
print(f'拷贝文件时出错: {e}')
编解码操作
- 编码:将人类可读的字符转换为二进制数据。使用
encode()
方法。 - 解码:将二进制数据转换回人类可读的字符。使用
decode()
方法。
示例
text = '你好,世界!'
encoded_text = text.encode('utf-8') # 编码
decoded_text = encoded_text.decode('utf-8') # 解码
with...open()...
语法
这是一种上下文管理器的用法,可以自动管理文件的打开和关闭。
扩展: os
模块
os
模块提供了许多与操作系统交互的功能,如文件和目录的访问。
常用函数
getcwd()
:获取当前工作目录。chdir(path)
:改变当前工作目录到path
。rename(src, dst)
:重命名文件或目录。remove(path)
:删除文件。mkdir(path)
:创建新目录。listdir(path)
:列出指定目录下的所有文件和目录名。
异常处理
异常是程序中的非正常情况,Python通过try...except...
结构来处理这些异常。
示例
try:
# 可能出错的代码
pass
except Exception as e:
# 处理异常
print(f'发生错误: {e}')
else:
# 如果没有异常发生
print('一切正常')
finally:
# 无论是否发生异常都会执行
print('清理工作')
通过合理使用异常处理,可以提高程序的健壮性和用户体验。