os模块是python内置的与操作系统功能和文件相关的模块,该模块中的语句的执行结果通常与操作系统有关,在不同的操作系统上运行,得到的结果可能不一样。
os模块与os.path模块用于对目录或文件进行操作。
目录
1.os模块常用函数:
import os
print(dir(os))
os.system("notepad.exe") # 打开记事本
os.system("calc.exe") # 打开计算器
# 1还可以直接调用可执行文件
os.startfile("D:\\Tencent\\QQ\\Bin\\QQScLauncher.exe")
# 2返回当前工作目录
print(os.getcwd()) # D:\download\临时\test\CV
# 3返回指定路径下的文件和目录信息(获取指定路径下的所有文件和目录信息)
lst = os.listdir("D:\\download\\临时\\test\\CV\\lx")
print(lst)
# 4创建目录
os.mkdir("d:\\1") # 在D盘创建一个文件夹
os.makedirs("d:\\2\\3\\4") # 创建多级目录
# 5删除目录
os.rmdir("d:\\1") # 删除1文件
os.removedirs("d:\\2\\3\\4") # 删除多级目录
# 6设置当前工作目录
os.chdir("D:\\download\\临时\\test\\CV\\lx")
print(os.getcwd())
2.os.path模块操作目录相关函数:
import os.path
# # abspath(path)用于获取文件或目录的绝对路径
# print(os.path.abspath("3.py")) # D:\download\临时\test\CV\3.py
# exists(path)判断文件或目录是否存在
# print(os.path.exists("3.py")) # True
# print(os.path.exists("123.py")) # False
# join(path,name)将目录与目录或者文件名拼接起来
# print(os.path.join(r"D:\download\临时\test\CV", "3.py")) # D:\download\临时\test\CV\3.py
# splitext()分离文件名与扩展名
# split()分离文件名与扩展名
print(os.path.splitext(r"D:\download\临时\test\CV\3.py")) # ('D:\\download\\临时\\test\\CV\\3', '.py')
print(os.path.split(r"D:\download\临时\test\CV\3.py")) # ('D:\\download\\临时\\test\\CV', '3.py')
print(os.path.splitdrive(r"D:\download\临时\test\CV\3.py")) # ('D:', '\\download\\临时\\test\\CV\\3.py')
# basename()从一个目录中提取文件名
print(os.path.basename(r"D:\download\临时\test\CV\3.py")) # 3.py
#
# dirname()从一个文件中提取文件路径,不包含文件名
print(os.path.dirname(r"D:\download\临时\test\CV\3.py")) # D:\download\临时\test\CV
#
# # isdir()判断是否为路径
# print(os.path.isdir(r"D:\download\临时\test\CV"))
# print(os.path.isdir(r"D:\download\临时\test\CV\3.py")) # 这里输出为false是因为这里已经输出的3.py是文件,而不是目录.
3.获取某个文件夹下的所有文件
第一种方法:是找到文件夹下的全部文件,然后筛选出以JPG结尾的文件
import os
path = os.listdir(r"D:\download\picture")
for filename in path:
if filename.endswith(".JPG"): # 文件名以.JPG结尾,这里区分大小写。
print(filename)
第二种:是一次性筛选出特定目录下的所有以.jpg结尾的文件,然后从目录种提取文件名。
import os
import glob
file = glob.glob(r"D:\download\picture\*.jpg")
for i in file:
print(os.path.basename(i))
4. 遍历当前文件(包括文件下的子文件)
"遍历当前文件包括当前文件下子文件"
filepath=os.walk(r"D:\download")
for dirpath,dirname,filename in filepath:
"""print(dirpath,"#"*10,dirname,"#"*10,filename)
print("*"*150)"""