开发者

Python文件操作基础及异常处理

目录
  • 1. 打开文件:open()
    • 语法:
    • 常见操作模式:
    • 示例:打开文件用于读取:
  • 2. 使用 with 语句自动管理文件
    • 读取文件内容:
    • 写入文件内容:
    • 追加内容:
  • 3. 读取文件的不同方式
    • 示例:逐行读取文件:
  • 4. 文件异常处理
    • 常见异常:
    • 示例:捕获文件异常:
  • 5. 二进制文件操作
    • 示例:读取二进制文件:
    • 示例:写入二进制文件:
  • 6. 文件路径说明
    • 7. 总结
      • 常见的文件操作步骤:
      • 完整代码示例:
    • 8. 小贴士

      在这篇将详细介绍如何打开文件读写文件,以及如何处理文件操作中的异常

      1. 打开文件:open()

      open() 函数用于打开文件,并返回一个文件对象,你可以通过这个对象操作文件内容。打开文件时,需要指定文件路径和操作模式。

      语法:

      file_object = open(file_path, mode)
      

      常见操作模式:

      模式描述
      'r'读取文件(默认模式),文件必须存在。
      'w'写入文件,如果文件存在则清空内容;如果文件不存在则创建。
      'a'追加模式,将新内容添加到文件末尾。
      'b'二进制模式,用于操作非文本文件(如图片、音频)。
      'rb'以二进制模式读取文件。
      'wb'以二进制模式写入文件。

      示例:打开文件用于读取:

      file = open('example.txt', 'r')  # 打开文件用于读取
      print(file.read())               # 打印文件内容
      file.close()                     # 关闭文件
      

      注意:如果忘记关闭文件,可能会占用系统资源或导致数据未及时写入磁盘。

      2. 使用 with 语句自动管理文件

      使用 with 语句打开文件时,python 会在代码块结束后自动关闭文件,避免忘记调用 close()

      读取文件内容:

      with open('example.txt', 'r') as file:
          content = file.read()  # 读取整个文件内容
          print(content)  # 打印文件内容
      

      写入文件内容:

      with open('example.txt', 'w') as file:
          file.write('Hello, Python!\n')  # 写入一行文本
      

      追加内容:

      with open('example.txt', 'a') as file:
          file.write('This is a new line.\n')  # 在文件末尾追加一行
      

      3. 读取文件的不同方式

      Python 提供了多种读取文件内容的方式,适用于不同的场景。

      方法描述示例
      read()读取整个文件内容为字符串content = file.read()
      readline()读取文件的一行内容line = file.readline()
      readlines()读取所有行并返回列表lines = file.readlines()

      示例:逐行读取文件:

      示例1

      with open('example.txt', 'r') as file:
          for line in file:
              print(line.strip())  # 去除换行符并打印每一行
      

      示例2

      with open('example.txt', 'r') as file:
          while True:
              linejs = file.readline()  # 读取一android行
              if not line:  # 如果是空字符串,说明文件结束
                  break
              print(line.strip())  # 打印当前行内容
      

      小提示: 如果是在某系统使用 ~/xxx.txt情况 , ~ 符号(代表用户的主目录)通常不会直接在文件路径中被识别, 通过下面的方案改进

      import os
      path = os.path.expanduser("~/xxx.txt")
      with open(path, 'r') as fandroidile:
          ......
      

      4. 文件异常处理

      文件操作中可能会遇到错误,例如文件不存在或没有权限。我们可以使用 try-except 语句来捕获这些异常,避免程序崩溃。

      常见异常:

      • FileNotFoundError:文件不存在。
      • PermissionError:没有权限访问文件。

      示例:捕获文件异常:

      try:
          with open('nonexistent.txt', 'r') as file:
              content = file.read()
              print(content)
      except FileNotFoundError:
          print("错误:文件不存在。请检查路径。")
      except PermissionError:
          print("错误:没有权限读取该文件。")
      except Exception as e:
          print(f"发生了其他错误:{e}")
      

      5. 二进制文件操作

      对于非文本文件(如图片或音频),需要以二进制模式读取和写入。

      示例:读取二进制文件:

      with open('image.jpg', 'rb') as file:
          data = file.read()
          print(data[:10])  # 打印前10个字节的数据
      

      示例:写入二进制文件:

      with open('copy.jpg', 'wb') as file:
          with open('image.jpg', 'rb') as src:
              file.write(src.read())  # 复制图片
      

      6. 文件路径说明

      在 open() 中,文件路径可以是绝对路径相对路径

      • 绝对路径:从根目录开始的完整路径。

        示例:open('/Userpythons/user/documents/file.txt', 'r')

      • 相对路径:相对于当前工作目录的路径。

        示例:open('file.txt', 'r')

      如果路径中有中文或空格,可以使用原始字符串r'')避免转义错误:

      with open(r'C:\用户\文档\文件.txt', 'r') as file:
          print(file.read())
      

      7. 总结

      常见的文件操作步骤:

      • 使用 open() 或 with 语句打开文件。
      • 选择合适的读取或写入模式('r''w''a' 等)。
      • 使用 read()write()readlines() 等方法进行操作。
      • 如果使用 open(),操作完成后要调用 close() 关闭文件。
      • 使用 try-except 捕获文件操作中的异常。

      完整代码示例:

      try:
          with open('exwww.devze.comample.txt', 'r') as file:
              print("文件内容:")
              print(file.read())
      except FileNotFoundError:
          print("文件不存在,请检查路径。")
      except PermissionError:
          print("没有权限访问该文件。")
      except Exception as e:
          print(f"发生了未知错误:{e}")
      

      8. 小贴士

      • 文件操作要小心:写入模式 'w' 会清空文件内容,请确认无误后再使用。
      • 处理换行符:读取文本时,可以使用 strip() 去除多余的换行符。
      • 二进制操作:当处理图片、音频等非文本文件时,记得使用 'rb' 或 'wb'

      到此这篇关于Python文件操作基础及异常处理的文章就介绍到这了,更多相关Python文件操作基础内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!

      0

      上一篇:

      下一篇:

      精彩评论

      暂无评论...
      验证码 换一张
      取 消

      最新开发

      开发排行榜