网站首页 > 教程文章 正文
文件操作是 Python 中非常重要的技能,几乎每个项目都会涉及到。今天我们从文件操作的起点——open() 方法开始。
什么是 open() 方法?
open() 是 Python 提供的内置函数,用于打开文件并返回文件对象。你可以通过这个文件对象执行各种文件操作,比如读取、写入等。
基本语法
file_object = open(file_name, mode, encoding=None)
- file_name:文件的路径和名称。
- mode:文件打开的模式,默认是 'r'(只读模式)。
- encoding:文件的编码类型,处理文本文件时常用,比如 'utf-8'。
文件模式详解
模式 | 说明 |
'r' | 只读模式,文件必须存在。 |
'w' | 写入模式,清空文件内容或创建新文件。 |
'a' | 追加模式,保留文件内容,在末尾添加新内容。 |
'b' | 二进制模式,常与其他模式组合使用,如 'rb'。 |
'x' | 独占写入模式,文件不存在时创建,存在时报错。 |
'+' | 读写模式,与其他模式组合使用,如 'r+'。 |
示例:打开一个文件
假设有一个名为 example.txt 的文件,其内容如下:
Hello, Python!
只读模式
file = open('example.txt', 'r')
content = file.read()
print(content) # 输出:Hello, Python!
file.close()
注意:读取文件后要调用 close() 方法释放资源。
写入模式
file = open('example.txt', 'w')
file.write('Overwritten content')
file.close()
'w' 模式会清空文件原有内容,再写入新内容。
追加模式
file = open('example.txt', 'a')
file.write('\\nNew line appended')
file.close()
'a' 模式在文件末尾添加新内容,不会影响已有数据。
with 语句的使用
手动关闭文件容易出错,with 语句能自动管理文件的打开与关闭:
with open('example.txt', 'r') as file:
content = file.read()
print(content)
# 无需手动调用 file.close()
常见错误
文件不存在
如果文件不存在且用 'r' 模式打开,会抛出 FileNotFoundError。
解决方法:
- 使用 'w' 模式创建文件。
- 在打开文件前检查文件是否存在: import os if os.path.exists('example.txt'): with open('example.txt', 'r') as file: print(file.read()) else: print('文件不存在!')
编码问题
读取包含特殊字符的文件时,可能需要指定正确的编码:
with open('example.txt', 'r', encoding='utf-8') as file:
print(file.read())
练习任务
- 创建一个名为 test.txt 的文件,并写入以下内容: This is a test file. Python is fun!
- 使用 'r' 模式读取并打印文件内容。
- 使用 'a' 模式在文件末尾添加一行:Learning file operations.
- 用 'r' 模式再次读取并打印完整内容。
完成以上任务后,你将掌握文件操作的基础知识。下一步,我们将深入学习文件读取的方法!
- 上一篇: Python其实很简单 第十四章 模块
- 下一篇: 用python实现打印表格的方法
猜你喜欢
- 2025-01-21 Python中的“锁”艺术:解锁Lock与RLock的秘密
- 2025-01-21 Python格式化字符串
- 2025-01-21 Lua实现文件I/O操作,你会吗?
- 2025-01-21 Python调用易语言动态链接库,实现验证码通杀例子
- 2025-01-21 Python语言入门源代码
- 2025-01-21 R 语言 + aardio 快速开发图形界面、生成独立 EXE
- 2025-01-21 Python中定义函数
- 2025-01-21 Python基础语法之print和变量赋值
- 2025-01-21 java程序设计练习题(二)附答案
- 2025-01-21 c#中使用miniExcel和fastreport实现付款审批单的批量打印
- 最近发表
- 标签列表
-
- location.href (44)
- document.ready (36)
- git checkout -b (34)
- 跃点数 (35)
- 阿里云镜像地址 (33)
- qt qmessagebox (36)
- md5 sha1 (32)
- mybatis plus page (35)
- semaphore 使用详解 (32)
- update from 语句 (32)
- vue @scroll (38)
- 堆栈区别 (33)
- 在线子域名爆破 (32)
- 什么是容器 (33)
- sha1 md5 (33)
- navicat导出数据 (34)
- 阿里云acp考试 (33)
- 阿里云 nacos (34)
- redhat官网下载镜像 (36)
- srs服务器 (33)
- pico开发者 (33)
- https的端口号 (34)
- vscode更改主题 (35)
- 阿里云资源池 (34)
- os.path.join (33)