2021-02-20python之os模块介绍
python里面的os模块有许多方法让我们通过代码实现创建,删除和更改木目录。具体罗列如下:
os.getcwd():getcwd()方法用来获取当前的工作路径,只具体到路径,不具体到文件。
os.path.realpath(path):返回path的真实路径,如果参数是:file就说明是本文件所在的绝对路径
os.path.join(a,b):连接两个部分的路径,组成一个完整的路径
os.mkdir(路径名字):在某个目录下创建一个新目录
os.rmdir(路径名字):删掉一个目录
os.listdir():获取当前路径下的目录列表,返回列表格式数据
os.path.isdir:判断当前文件是否是目录,返回布尔值
os.path.isfile:判断当前文件是否是文件,返回布尔值
os.path.split(路径):拆分路径,这样可以把一个路径拆分为两部分,后一部分总是最后级别的目录或文件名,返回元组格式数据
os.path.splitext(路径):可以直接让你得到文件扩展名,很多时候非常方便。
os.path.exists():函数用来检验给出的路径是否真实存在
os.path.dirname(path):返回文件路径
os.path.basename(path):返回文件名字
示例演示
(1)比如此路径下有一个Python4的项目
C:\Users\20489\PycharmProjects\Python4
在Python4项目下创建一个文件:IO_4.py,代码如下:
__author__='20489'
import os
print(os.getcwd())
print(os.path.realpath(__file__))
执行结果如下:
C:\Users\20489\PycharmProjects\Python4
C:\Users\20489\PycharmProjects\Python4\IO_4.py
二者区别:
os.getcwd()用来获取当前文件所在的工作目录
os.path.realpath(file)用来显示当前正在操作的是哪个文件
(2)依然在IO_4.py中操作
__author__='20489'
import os
#获取IO_4.py文件的工作路径
now_dir=os.getcwd()
#在now_dir路径下再创建子文件夹
new_dir=os.path.join(now_dir,'dalong')#这里只是生成一个新的路径,并没有创建dalong这个文件夹
os.mkdir(new_dir)
总结:os.path.join()和os.mkdir()通常一起结合用
(3)依然在IO_4.py中操作
__author__='20489'
import os
#获取当前路径下的所有文件(包括文件夹,文件,隐藏文件等所有文件都显示出来,返回的是一个list列表
print(os.listdir())
打印结果:
#C:\Users\20489\PycharmProjects\Python4此目录下的所有文件,如:
[OI_4.py,dalong,image.jpg]
(4) 依然在IO_4.py中操做
需求:是文件就删除,不是文件就不删除
1)目录判断
import os
print(os.listdir())#结果:['.idea', 'helloworld.txt', 'IO_4.py', 'test', 'venv']
print(os.path.isdir("E:/pythonProject"))#结果:True
print(os.path.isdir("E:\\pythonProject"))#结果:True
print(os.path.isdir("pythonProject"))#结果:False 因为:不是绝对路径,默认判断与IO_4.py同级的目录下pythonProject是不是目录
print(os.path.isdir("test"))#结果:True
print(os.path.isdir("E:\\pythonProject\\test"))#结果:True
print(os.path.isdir("E:\\pythonProject\\IO_4"))#结果:False
print(os.path.isdir("IO_4.py"))#结果:False
image.png
2)文件判断
import os
print(os.listdir())
#文件判断
print(os.path.isfile("E:\\pythonProject\\IO_4.py"))
print(os.path.isfile("IO_4.py"))
结果:
E:\pythonProject\venv\Scripts\python.exe E:/pythonProject/IO_4.py
['.idea', 'helloworld.txt', 'IO_4.py', 'test', 'venv']
True
True
Process finished with exit code 0
(5)os.path.split()
os.path.split(路径):拆分路径,这样可以把一个路径拆分为两部分,后一部分总是最后级别的目录或文件名,返回元组格式数据
import os
#获取当前正在操做的文件路径
dir=os.path.realpath(__file__)
print(dir)
result1=os.path.split(dir)
print(result1)
result2=os.path.split("E:\\cpic\\cpicapp\\upload")
print(result2)
print(type(result2))
打印结果:
E:\pythonProject\venv\Scripts\python.exe E:/pythonProject/IO_4.py
E:\pythonProject\IO_4.py
('E:\\pythonProject', 'IO_4.py')
('E:\\cpic\\cpicapp', 'upload')
<class 'tuple'>
Process finished with exit code 0
总结:os.path.split(),路径拆分,默认从最后一个开始切分,将最后一个目录或者文件单独拆分出来
(4)判断路径或者文件是否存在
import os
#获取当前文件所在目录下的所有目录列表(包括目录,文件,隐藏文件)
print(os.listdir())
#获取当前正在操做的文件路径
dir=os.path.realpath(__file__)
print(os.path.exists(dir))
print(os.path.exists("E:\\pythonProject"))
打印结果:
E:\pythonProject\venv\Scripts\python.exe E:/pythonProject/IO_4.py
['.idea', 'helloworld.txt', 'IO_4.py', 'test', 'venv']
True
True
Process finished with exit code 0