【Python】基础--文件处理

在Python中,文件处理涉及打开文件、读取文件内容、写入文件以及关闭文件等操作。以下是有关文件处理的基本知识:

1. 文件的打开

在Python中,可以使用内置的 open() 函数打开文件。open() 函数的基本语法如下:

复制代码
file_object = open(file_name, mode)
  • file_name: 要打开的文件的路径和名称。
  • mode: 文件打开模式(可选),常用模式包括:
    • 'r': 只读模式(默认)

    • 'w': 写入模式(如果文件存在,则覆盖;如果不存在,则创建新文件)

    • 'a': 追加模式(在文件末尾添加内容)

    • 'b': 二进制模式(例如,'rb''wb'

    • 'x': 排他性写入模式(仅在文件不存在时创建新文件)

      以只读模式打开文件

      file = open("example.txt", "r")

2. 文件的读取

读取文件内容通常使用 read(), readline()readlines() 方法。

  • read(size): 读取指定数量的字节,如果没有指定,读取整个文件。

    content = file.read() # 读取整个文件内容

readline(): 逐行读取文件,每次读取一行。

复制代码
first_line = file.readline()  # 读取第一行

readlines(): 读取文件中所有行并返回一个列表,每一行作为列表的一项。

复制代码
lines = file.readlines()  # 返回所有行的列表

使用示例

复制代码
file = open("example.txt", "r")  
content = file.read()  # 读取文件内容  
print(content)  
file.close()  # 关闭文件

3. 文件的写入

文件写入通常使用 write()writelines() 方法。

  • write(string): 将字符串写入文件。

    file.write("Hello, World!")

  • writelines(lines): 将一个字符串列表写入文件,每个字符串被写入后不自动换行。

    lines = ["Line 1\n", "Line 2\n", "Line 3\n"]
    file.writelines(lines)

使用示例

复制代码
file = open("example.txt", "w")  # 以写入模式打开文件(覆盖)  
file.write("Hello, World!\n")  
file.write("This is a new line.\n")  
file.close()  # 关闭文件

4. 文件的关闭

无论是读取还是写入操作后,应该使用 close() 方法关闭文件,以释放系统资源:

复制代码
file.close()

5. 使用 with 语句

为了确保文件正确关闭,可以使用 with 语句来处理文件,这样无论操作是否成功,文件都会被自动关闭。

示例

复制代码
with open("example.txt", "w") as file:  
    file.write("Hello, World!\n")  
    file.write("Using with statement for safer file handling.\n")  

with open("example.txt", "r") as file:  
    content = file.read()  
    print(content)

6. 处理文件异常

在文件处理时,可能会出现各种异常,例如文件未找到、权限不足等。可以使用 try-except 语句来捕获和处理这些异常。

示例

复制代码
try:  
    with open("example.txt", "r") as file:  
        content = file.read()  
        print(content)  
except FileNotFoundError:  
    print("File not found.")  
except PermissionError:  
    print("Permission denied.")

通过掌握以上知识,你可以有效地进行文件的读写和管理。在实际应用中,这些基本操作非常重要,尤其是在处理大量数据或配置文件时。

相关推荐
TechWayfarer20 分钟前
攻防对抗:利用IP段归属查询工具快速封禁攻击源——3步联动防火墙(附脚本)
python·网络协议·tcp/ip·安全
m0_4939345325 分钟前
Go语言中 & 与 - 的本质区别及指针使用详解
jvm·数据库·python
Greyson138 分钟前
Redis如何解决哨兵通知延迟问题_优化客户端连接池动态刷新拓扑的订阅监听机制
jvm·数据库·python
深蓝海拓38 分钟前
基于QtPy (PySide6) 的PLC-HMI工程项目(十)框架初成的阶段总结
网络·笔记·python·学习·ui·plc
阿_旭1 小时前
基于YOLO26深度学习的【辣椒成熟度检测与计数系统】【python源码+Pyqt5界面+数据集+训练代码】
人工智能·python·深度学习·辣椒成熟度检测
无风听海1 小时前
Python类型守卫深度解析
python
weixin_580614002 小时前
如何防止SQL注入利用存储过程_确保存储过程不拼字符串.txt
jvm·数据库·python
weixin_408717772 小时前
mysql权限表查询性能如何优化_MySQL系统权限缓存原理
jvm·数据库·python
吕源林2 小时前
怎么优化MongoDB的软删除设计_布尔标记与删除时间戳
jvm·数据库·python
吕源林2 小时前
如何解决SQL存储过程连接泄露_确保在异常后关闭连接
jvm·数据库·python