1、介绍
(1)os模块是python中的一个内部模块。用于处理与系统相关的函数和类。
(2)os模块支持windows和linux,在os模块中一般是用NT和Posix分别指windows和linux。
在不同系统中,会调用不同具体的模块实现。
(3)目前主要使用os.listdir函数和os.path下的函数
2、os.path
通过os.path可以调用很多有用的函数。其本身是一个module类对象,与所在操作系统相关,windows下为ntpath.py进行初始化。
print(os.path)
print(type(os.path))
<module 'ntpath' from 'C:\\Users\\tongjie\\AppData\\Local\\Programs\\Python\\Python39\\lib\\ntpath.py'>
<class 'module'>
2.1 判断
# 判断文件存在
# print(os.path.exists("I:"))
# 判断是否为存在的目录,如果不存在,或存在但不是目录,都返回False
# print(os.path.isdir("i:"))
# print(os.path.isdir("I:\\20220825"))
# print(os.path.isfile("I:\\20220825"))
# 判断是否为存在的文件,如果不存在,或存在但不是文件,都返回False
# print(os.path.isfile("I:\\20220825\\ab.txt"))
# print(os.path.isfile("I:\\20220825\\abc.txt"))
# 判断是否是绝对路径,是否存在和文件类型不影响
# print(os.path.isabs("I:\\20220825a"))
# print(os.path.isabs("a25"))
# 以及判断是否为链接文件和装载文件类型(u盘?)
# print(os.path.islink())
# print(os.path.ismount())
2.2 获取
# 获取最低一层的文件或目录名称,是否存在不影响
# print(os.path.basename("I:\\20220825\\ab.txt"))#ab.txt
# print(os.path.basename("I:\\20220825\\"))#""
# print(os.path.basename("I:\\20220825"))#20220825
# 获取目录的路径
# print(os.path.dirname("I:\\20220825\\ab.txt")) # I:\20220825
# print(os.path.dirname("I:\\20220825\\")) #I:\20220825
# print(os.path.dirname("I:\\20220825"))# I:\
# print(os.path.abspath("")) # 获取当前代码py文件所在目录的绝对路径
2.3 文件信息
(1)getsize函数
- 获取文件大小,单位是字节,int类型
- 如果是指定为不存在的路径,会报错
- 指定为目录或者刚创建的空的文本文件.txt,即不存在内容,会返回0
- 指定为一般的文本文件,比如.txt,返回其文本内容占据的字节数。比如一个ascii字符占一个字节,一个utf-8编码的中文字符占3个字节
print(os.path.getsize("I:\\20220825\\ab.txt"))
(2)获取文件的相关时间
- 返回类型是float,1670575951.5106602形式
- 指定参数可以是目录或一般文件,但如果不存在,会报错
- ctime是创建时间crate,atime是访问时间access,mtime是修改时间modify
print(os.path.getmtime("I:\\20220825"))
print(os.path.getatime("I:\\20220825"))
print(os.path.getctime("I:\\20220825"))
3、os直接函数
这里整理一些os模块下直接调用的函数。
3.1 os.listdir
- 作用是获取指定的存在的目录下的一级子目录或文件名称,返回类型是list
- 元素str类型,是文件名称或目录名称,不包含路径信息
- 指定参数是str类型,表示存在的目录,否则会报错
- 指定参数的目录下不存在子文件或子目录时,返回空列表[]
print(os.listdir("I:\\20220825\\")) # 两者等价
print(os.listdir("I:\\20220825"))
3.2 os.mkdir
- 作用是创建目录
- 可以只传递一个参数,str类型,表示创建目录的路径,可以是绝对路径,也可以是相对路径
- 如果指定目录已经创建,会报错。如果指定目录的父目录中未创建,也会报错
示例:
os.mkdir("abc")
3.3 os.makedirs
- 作用是创建目录
- 可以只传递一个参数,str类型,表示创建目录的路径,可以是绝对路径,也可以是相对路径
- 如果指定目录已经创建,会报错。如果指定目录的父目录中未创建,会自动创建父目录路径中的一个或多个目录
示例:
os.makedirs("ab\\d")