首页 > Python资料 博客日记

Python 文件操作基础

2025-01-13 14:00:08Python资料围观30

本篇文章分享Python 文件操作基础,对你有帮助的话记得收藏一下,看Python资料网收获更多编程知识

Python 文件操作基础

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


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. 总结

常见的文件操作步骤

  1. 使用 open()with 语句打开文件。
  2. 选择合适的读取或写入模式('r''w''a' 等)。
  3. 使用 read()write()readlines() 等方法进行操作。
  4. 如果使用 open(),操作完成后要调用 close() 关闭文件。
  5. 使用 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'

版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!

标签:

相关文章

本站推荐