Python 基础语法 05 文件

文件操作基础

概述

操作系统通过文件来管理数据,这一机制也常被称为文件管理系统。无论是Windows、Mac还是Linux,都提供了对文件的操作接口。文件操作的基本步骤包括打开文件、读写数据、关闭文件。

文件操作的步骤

  1. 打开文件:使用open()函数,指定文件路径、模式和码表(可选)。
  2. 读写数据:根据打开文件的模式(只读、只写、追加等),使用相应的函数(如read()write()readline()readlines()等)进行数据的读取或写入。
  3. 关闭文件:使用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('清理工作')

通过合理使用异常处理,可以提高程序的健壮性和用户体验。

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值