
Python文件读写操作
发布日期:2021-05-12 20:11:33
浏览次数:23
分类:精选文章
本文共 1733 字,大约阅读时间需要 5 分钟。
Python文件读写操作指南
一、文件打开与关闭
在Python中,open
函数用于打开与文件相关的操作。以下是常见的文件访问模式:
r
(只读模式):打开文件进行读取操作,文件指针位于文件开头。w
(只写模式):打开文件用于写入。若文件已存在,内容将被覆盖。a
(追加模式):打开文件用于追加内容,文件指针位于文件结尾。
文件操作可以通过close
方法关闭文件,建议使用with
上下文管理器来确保自动关闭:
with open('file_b.txt', 'w') as f: f.write('内容')
二、文件读写操作
1. 写入数据
使用write
方法向文件中写入字符串或字节内容:
with open('file_b.txt', 'w') as f: f.write('当我和拥挤的人群一同在路上走过时,\n我看见您从阳台上送过来的微笑,\n我歌唱着,\n忘却了所有的喧哗')
注意事项:
- 若文件未存在,会创建新文件。
- 模式为
w
时会覆盖已有文件,a
模式则追加内容。
2. 读取数据
使用read
方法读取文件内容,若无第二个参数则读取完整文件:
with open('file_b.txt', 'r') as f: content = f.read(15) # 读取15个字节 content_all = f.read() # 读取全部内容
注意事项:
read
方法支持多次调用,下一次读取将从上次位置继续。- 若使用
r
模式默认打开文件,省去文件类型描述即可。
3. 按行读取文件
使用readlines
按行读取全部内容,返回列表形式:
with open('file_b.txt', 'r') as f: content_list = f.readlines() # 返回全文列表
若需逐行读取,可以使用readline
方法:
with open('file_b.txt', 'r') as f: content_line1 = f.readline() # 读取第一行 content_line2 = f.readline() # 继续读取下一行
三、定位读取文件
1. 获取当前读取位置
tell()
方法可获取当前文件位置(中文字符占2个字节):
with open('file_b.txt', 'r') as f: content_line = f.readline() position = f.tell() # 获取当前位置
2. 定位移动
使用seek()
方法改变读取位置,参数from
可选0
(开头)、1
(当前位置)、2
(末尾):
with open('file_b.txt', 'r') as f: f.seek(10, 0) # 移动到第10个字节位置 position = f.tell() # 获取新位置
四、文件其他操作
1. 文件重命名
使用os.rename
重命名文件:
import osos.rename('file_b.txt', 'file_c.txt')
2. 删除文件
使用os.remove
删除文件:
os.remove('file_a.txt')
3. 创建文件夹
使用os.mkdir
创建文件夹:
os.mkdir('files')
4. 获取当前目录
使用os.getcwd()
获取当前工作目录:
print(os.getcwd()) # 输出当前目录路径
5. 改变默认目录
使用os.chdir
切换目录:
os.chdir('files')
6. 获取目录列表
使用os.listdir()
获取当前目录下的文件和文件夹:
print(os.listdir()) # 输出当前目录列表
7. 删除文件夹
使用os.rmdir
删除文件夹:
os.rmdir('files')
结语
文件操作是日常编程的重要环节,掌握Python的文件处理方法能显著提升工作效率。在实际应用中,建议结合with
上下文管理器和try...finally
结构,确保文件操作的安全性和资源的 Proper Handling。
发表评论
最新留言
很好
[***.229.124.182]2025年04月13日 00时11分00秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
ssm(Spring+Spring mvc+mybatis)——saveDept.jsp
2019-03-11
《坚毅》的读后感
2019-03-11
JavaScript操作BOM对象
2019-03-11
bootstrap样式代码案例
2019-03-11
mysql添加用户并设置数据库权限
2019-03-11
layui二级联动
2019-03-11
SpringCloud分布式服务-我的理解
2019-03-11
并查集&字典树&KMP练习_2
2019-03-11
RMQ&线段树复习
2019-03-11
解决Chrome播放视频闪屏黑屏无法播放
2019-03-11
Java中final的理解
2019-03-11
Git简单理解与使用
2019-03-11
爬虫-01
2019-03-11
echarts 基本图表开发小结
2021-05-14
二分查找.基于有序数组的查找方法.704
2021-05-14
C语言文档操作
2021-05-14
制作JS验证码(简易)
2021-05-14