目录
前言
文件操作
一、读写文件
1.读文件
2.写文件
二、创建文件
三、删除文件
四、重命名文件
五、文件判断
路径操作
1.拼接
2. 分离路径
3.获取路径中的文件名
4.获取路径中的路径名
5.获取绝对路径
6.分离文件拓展名
点关注,防走丢,如有纰漏之处,请留言指教,非常感谢
前言
Python的os(Operating System)库是一个用于与操作系统进行交互的标准库,它提供了许多有用的函数和变量,用于访问文件系统、环境变量、进程、管道、用户和组等操作系统相关的功能。
这里我为大家总结了所有OS库里面的各类功能常用函数:
![](https://img-blog.csdnimg.cn/c328bd57726d477ca04472983e4bb02e.png)
有这张思维导图基本就够了,基本涵盖所有涉及到的Python基础系统路径操作功能函数了。当然还有很多关于这些函数细节的,需要辅以实际代码展示例子,以更直观的看到每个函数该如何使用和操作。
关于OS库的功能还是挺多的, 尤其是文件和目录操作,其实掌握这些sys和os的函数操作之后,就可以实现较高级的脚本编程,可以随心所欲的控制自己电脑发出任何操作和指令,比鼠标点击更加高效更灵活,或者可以自己编写一些脚本发给其他人的实现一些意想不到的效果。
文件操作
- 文件的IO操作完成后必须关闭连接对象
- flags多个值时以|隔开
常用的flags:
- os.O_RDONLY: 以只读的方式打开
- os.O_WRONLY: 以只写的方式打开
- os.O_RDWR : 以读写的方式打开
- os.O_NONBLOCK: 打开时不阻塞
- os.O_APPEND: 以追加的方式打开
- os.O_CREAT: 创建或打开文件
- os.O_TRUNC: 打开一个文件并截断它的长度为零(必须有写权限)
一、读写文件
常用格式 os.open(path, flags, mode), mode一般为Linux系统文件操作的参数 ,设置文件权限。
以只读权限打开config文件,文件不存在时报错,先判断是否存在 再进行操作,必要时需先判断是否为文件。
1.读文件
if os.path.lexists(r'C:\Users\10799\get_info\OS\newTest\txtfile.txt'):
fd = os.open(r'C:\Users\10799\get_info\OS\newTest\txtfile.txt',os.O_RDONLY)
print(os.read(fd, 9))
os.close(fd)
else:
pass
![](https://img-blog.csdnimg.cn/d21155e2b2fe4dcaa3891f2a82ebcb45.png)
![](https://img-blog.csdnimg.cn/7d189e7323e4409390b8c67cf4be7643.png)
2.写文件
将文件的前N个字符替换为新的字符,替换长度由替换的内容长度决定
fd1 = os.open(r'C:\Users\10799\get_info\OS\newTest\txtfile.txt', os.O_WRONLY)
os.write(fd1, bytes('python', 'UTF-8')) # 文件的读写都是以字节类型存取
os.close(fd1)
![](https://img-blog.csdnimg.cn/267889c4a89243069247cab7ce80e69a.png)
文件存在打开,文件不存在新增
# 文件存在打开,文件不存在新增
fd2 = os.open(r'C:\Users\10799\get_info\OS\newTest\txtfile.txt', os.O_RDWR)
print(os.read(fd2, 10))
os.write(fd2, bytes('java', 'UTF-8'))
print(os.read(fd2, 10))
os.close(fd2)
![](https://img-blog.csdnimg.cn/eed2302c5b7049fd9691eda11116da23.png)
追加模式打开文件,必须具有写权限
# 追加模式打开文件,必须具有写权限
fd3 = os.open(r'C:\Users\10799\get_info\OS\newTest\txtfile.txt', os.O_RDWR | os.O_APPEND)
print(os.read(fd3, 100))
os.write(fd2, bytes('php', 'UTF-8'))
os.close(fd2)
![](https://img-blog.csdnimg.cn/fafc1d6707c24e31b9ad81f7be42fc21.png)
二、创建文件
创建空文件
# 创建空文件
fd = os.open(r'C:\Users\10799\get_info\OS\newTest\txtfile1.txt', os.O_CREAT)
os.close(fd)
![](https://img-blog.csdnimg.cn/e4bedd48744340df83fce9fd841452cb.png)
创建文件并写入数据时须具有写权限
# 创建文件并写入数据时须具有写权限
fd = os.open(r'C:\Users\10799\get_info\OS\newTest\txtfile2.txt', os.O_CREAT | os.O_RDWR)
os.write(fd, bytes('Fanstuck', 'UTF-8'))
os.close(fd)
![](https://img-blog.csdnimg.cn/0ca84db8471e41aebcc137c902ac8c73.png)
三、删除文件
# 文件不存在时报错
if os.path.lexists(r'C:\Users\10799\get_info\OS\newTest\txtfile2.txt'):
os.remove(r'C:\Users\10799\get_info\OS\newTest\txtfile2.txt')
else:
print("文件不存在")
![](https://img-blog.csdnimg.cn/90e0c6024a03423cb3b3fde629753311.png)
四、重命名文件
这里注意一下,rename(one,two)第一个one参数以相对路径默认,可以输入绝对路径和相对路径,而two也是一样,若two不指定绝对路径则就在该python文件目录下。
# 文件不存在时报错
if os.path.lexists(r'C:\Users\10799\get_info\OS\newTest\txtfile1.txt'):
os.rename(r'C:\Users\10799\get_info\OS\newTest\txtfile1.txt','txtfile2.txt')
else:
print("文件不存在")
![](https://img-blog.csdnimg.cn/b05531b2367e4ac486ecca1967367a4d.png)
五、文件判断
![](https://img-blog.csdnimg.cn/a355014ccb7e4f24abad04be6ae42aa1.png)
判断是否存在用exists,是否为文件用isfile。
# coding:utf-8
import os
# 文件是否存在
print(os.path.exists(r'C:\Users\10799\get_info\OS\newTest\txtfile.txt')) # true
# 是否为文件
print(os.path.isfile(r'C:\Users\10799\get_info\OS\newTest\txtfile.txt')) # True
路径操作
1.拼接
print(os.path.join("txt", 'file', 'user1', 'server.log'))
![](https://img-blog.csdnimg.cn/352a048e820845d5bea1adfb26c24a45.png)
2. 分离路径
print(os.path.split(r"C:\Users\10799\get_info\OS\newTest\txtfile.txt"))
![](https://img-blog.csdnimg.cn/3546db6906784c80bc795d2073b46c09.png)
3.获取路径中的文件名
print(os.path.basename(r"C:\Users\10799\get_info\OS\newTest\txtfile.txt"))
![](https://img-blog.csdnimg.cn/c59c68552ccc4cc392b3533bb87465c4.png)
4.获取路径中的路径名
print(os.path.dirname(r"C:\Users\10799\get_info\OS\newTest\txtfile.txt"))
![](https://img-blog.csdnimg.cn/172664a631bf4911bceab0ab3346eae9.png)
5.获取绝对路径
print(os.path.abspath(r"newTest\txtfile.txt"))
![](https://img-blog.csdnimg.cn/57585630889f486d8196397d12344023.png)
6.分离文件拓展名
print(os.path.splitext(r"C:\Users\10799\get_info\OS\newTest\txtfile.txt"))
![](https://img-blog.csdnimg.cn/661f6197b82c46e38b8924bfddd0a158.png)
点关注,防走丢,如有纰漏之处,请留言指教,非常感谢
以上就是本期全部内容。我是fanstuck ,有问题大家随时留言讨论 ,我们下期见。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)