Python3 文件操作详解:创建、读写与模式
103 浏览量
更新于2024-08-29
收藏 75KB PDF 举报
"test.txt","w+",encoding="utf-8")
f.write(message)
f.seek(0) # 移动文件指针到文件开头
print(f.read()) # 读取文件内容
f.close() # 关闭文件
1.2 文件读取
在Python中,我们可以使用read(), readline() 和 readlines() 方法来读取文件内容。
- read():一次性读取整个文件内容,如果文件很大,可能会消耗大量内存。
- readline():读取文件的一行内容,适合逐行处理大文件。
- readlines():返回一个包含文件所有行的列表,每行作为一个元素。
示例:
f = open("test.txt", "r")
content = f.read() # 读取整个文件
lines = f.readlines() # 读取所有行,形成列表
for line in lines:
print(line.strip()) # 去除行尾的换行符并打印
f.close()
1.3 文件写入
写入文件有三种方式:write(), writelines(), 还有追加模式('a')。
- write():用于写入字符串或字节,如果文件已存在,会被覆盖。
- writelines():接受一个字符串列表,一次性写入所有内容。
- 'a' 模式:用于向文件追加内容,不会覆盖原有内容。
示例:
with open("test.txt", "a") as f:
f.write("这是追加的内容。\n")
lines_to_write = ["line1\n", "line2\n"]
f.writelines(lines_to_write)
1.4 文件关闭
在处理完文件后,应当关闭文件,释放系统资源。可以使用close()方法,或者更安全的使用with语句,它会在离开with代码块时自动关闭文件。
1.5 错误处理
在处理文件时,可能出现文件不存在、权限错误等异常,应该使用try-except语句捕获并处理这些异常。
例如:
try:
f = open("non_existent_file.txt", "r")
except FileNotFoundError:
print("文件不存在")
finally:
if 'f' in locals(): # 检查文件是否已经打开
f.close()
1.6 文件定位
文件对象有一个名为seek()的方法,可以改变文件指针的位置。tell()方法返回当前文件指针的位置。
示例:
f = open("test.txt", "r")
print(f.tell()) # 输出初始位置
f.seek(5) # 将文件指针移动到第5个字节
print(f.tell()) # 输出新的位置
1.7 文件操作的上下文管理
Python推荐使用with语句处理文件,因为它能确保文件在使用完毕后被正确关闭,即使在处理文件过程中发生异常。
例如:
with open("test.txt", "r") as f:
content = f.read()
print(content)
1.8 文件的复制和移动
Python的shutil模块提供了copy()和move()方法,用于文件的复制和移动。
示例:
import shutil
shutil.copy("source.txt", "destination.txt") # 复制文件
shutil.move("old_location.txt", "new_location.txt") # 移动文件
以上就是关于Python文件处理的基本操作,通过熟练掌握这些知识点,可以轻松地在Python程序中实现对文件的创建、读写、定位、关闭以及文件的移动和复制。在实际项目中,根据需求选择合适的模块和方法,灵活运用这些知识,可以大大提高代码的效率和可维护性。
2019-11-26 上传
2020-12-24 上传
2024-08-03 上传
2024-04-18 上传
2021-01-20 上传
weixin_38645198
- 粉丝: 5
- 资源: 956
最新资源
- 深入浅出:自定义 Grunt 任务的实践指南
- 网络物理突变工具的多点路径规划实现与分析
- multifeed: 实现多作者间的超核心共享与同步技术
- C++商品交易系统实习项目详细要求
- macOS系统Python模块whl包安装教程
- 掌握fullstackJS:构建React框架与快速开发应用
- React-Purify: 实现React组件纯净方法的工具介绍
- deck.js:构建现代HTML演示的JavaScript库
- nunn:现代C++17实现的机器学习库开源项目
- Python安装包 Acquisition-4.12-cp35-cp35m-win_amd64.whl.zip 使用说明
- Amaranthus-tuberculatus基因组分析脚本集
- Ubuntu 12.04下Realtek RTL8821AE驱动的向后移植指南
- 掌握Jest环境下的最新jsdom功能
- CAGI Toolkit:开源Asterisk PBX的AGI应用开发
- MyDropDemo: 体验QGraphicsView的拖放功能
- 远程FPGA平台上的Quartus II17.1 LCD色块闪烁现象解析