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

 更新时间:2025年03月01日 09:58:14   作者:咱家阿星  
这篇文章主要介绍了文件操作的基本方法,包括如何打开和关闭文件、使用with语句管理文件、读取和写入文件内容、处理文件异常、进行二进制文件操作以及文件路径的说明,,需要的朋友可以参考下

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

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:
        line = file.readline()  # 读取一行
        if not line:  # 如果是空字符串,说明文件结束
            break
        print(line.strip())  # 打印当前行内容

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

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

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('/Users/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('example.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文件操作基础内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python实现带错误处理功能的远程文件读取方法

    python实现带错误处理功能的远程文件读取方法

    这篇文章主要介绍了python实现带错误处理功能的远程文件读取方法,涉及Python使用socket操作远程文件的相关技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • 详解pandas中iloc, loc和ix的区别和联系

    详解pandas中iloc, loc和ix的区别和联系

    这篇文章主要介绍了详解pandas中iloc, loc和ix的区别和联系,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • python判断列表的连续数字范围并分块的方法

    python判断列表的连续数字范围并分块的方法

    今天小编就为大家分享一篇python判断列表的连续数字范围并分块的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11
  • 三步实现Django Paginator分页的方法

    三步实现Django Paginator分页的方法

    这篇文章主要介绍了三步实现Django Paginator分页的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06
  • python 创建一维的0向量实例

    python 创建一维的0向量实例

    今天小编就为大家分享一篇python 创建一维的0向量实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • 基于Python和openCV实现图像的全景拼接详细步骤

    基于Python和openCV实现图像的全景拼接详细步骤

    这篇文章主要介绍了基于Python和openCV实现图像的全景拼接,本文分步骤通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2021-10-10
  • pytorch报错问题:ValueError: num_samples should be a positive integer value, but got num_samples=0

    pytorch报错问题:ValueError: num_samples should be

    这篇文章主要介绍了pytorch报错问题:ValueError: num_samples should be a positive integer value, but got num_samples=0的解决方案,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • Python错误处理操作示例

    Python错误处理操作示例

    这篇文章主要介绍了Python错误处理操作,结合实例形式分析了Python使用try...except...finaly语句进行错误处理的相关操作技巧与注意事项,需要的朋友可以参考下
    2018-07-07
  • Python中unittest模块做UT(单元测试)使用实例

    Python中unittest模块做UT(单元测试)使用实例

    这篇文章主要介绍了Python中unittest模块做UT(单元测试)使用实例,本文直接给出待测试的类、测试类和测试结果以及测试总结,需要的朋友可以参考下
    2015-06-06
  • Python tkinter模版代码实例

    Python tkinter模版代码实例

    这篇文章主要介绍了Python tkinter模版代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02

最新评论