文件操作
文件的基本操作#
打开文件#
path = 'test.txt'
path = r'/home/pyvip/py_case/test.txt'
file = open(path, 'w+')
t | 文本模式 (默认) |
x | 写模式,新建一个文件,如果该文件已存在则会报错。 |
b | 二进制模式。 |
+ | 打开一个文件进行更新(可读可写)。 |
U | 通用换行模式(不推荐)。 |
r | 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
rb | 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。 |
r+ | 打开一个文件用于读写。文件指针将会放在文件的开头。 |
rb+ | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。 |
w | 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb | 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
w+ | 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb+ | 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
a | 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
ab | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
ab+ | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |
写入文件#
# 一次性写入
file.write('Python')
# 按行写入
file.writelines([‘1’, ‘2’, ‘3’])
读取文件#
# 一次性读取完
file.read()
# 按行读取
file.readline()
file.readlines()
查看#
file.tell()
文件指针#
file.tell()
关闭#
file.close()
上下文管理器#
with open as f:
# 各种操作
这种方法不需要
close
。
结构化文件#
# 1.创建IO
import io
sio = io.StringIO()
# 2.写入内容
sio.write(str(i))
# 3.读取内容
sio.getvalue()
StringIO
在内存中如同打开文件一样操作字符串,因此也有很多文件的方法。当创建的
StringIO
调用close()
方法时,在内存中的数据会被丢失
非结构化文件#
# 1.创建IO
import io
sio = io.BytesIO()
# 2.写入内容
sio.write(b'abc')
# 3.读取内容
sio.getvalue()
BytesIO
和StringIO
类似,但是BytesIO
操作的是Byte
数据
常用的系统工具#
os
操作系统交互#
import os
# 可以直接调用系统命令
os.system('ifconfig')
# 操作路径
os.path()
os.path.join(r'/home/chancey/', r'data') # 路径拼接
# 操作文件目录
os.mkdir('demo') # 创建目录
os.rename('demo', 'test') # 重命名
os
提供了PYTHON
和操作系统的交互方式,只要是和操作系统相关,就可以在os
模块中找方法。更多方法传送门
shutil
高级文件操作#
import shutil
# 移动文件
shutil.move
# 复制文件夹
shutil.copytree
# 删除文件夹
shutil.rmtree
shutil
模块提供了许多关于文件和文件集合的高级操作。更多方法传送门
作者:ChanceySolo
出处:https://www.cnblogs.com/chancey/p/10229479.html
版权:本作品采用「ChanceySolo-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
分类:
python基础
Buy me a cup of coffee ☕.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!