一、os模块概述
- os模块是Python内置的与操作系统功能和文件系统相关的模块,该模块中的语句的执行结果通常与操作系统有关,在不同的操作系统上运行,得到的结果可能不一样
- os模块与os.path模块用于对目录或文件进行操作
前提:在使用函数之前需先导入os函数
调用系统文件或程序:
# os模块与操作系统相关的一个模块,可以调用系统文件或应用程序
import os
print(os.system("notepad.exe"))
print(os.system("calc.exe"))
print(os.system('cmd'))
直接调用可执行文件
# 直接调用可执行文件(如:打开网易云音乐)
print(os.startfile('F:\\CloudMusic\\cloudmusic.exe'))
当前使用平台
# 返回当前使用平台的代表字符,Windows用'nt'表示,Linux用'posix'表示
print(os.name)
os模块操作目录相关函数
# 返回当前工作目录
print(os.getcwd())
# 返回stusystem目录下所有文件列表
print(os.listdir('../stusystem'))
创建目录
#创建path目录(只能创建一级目录,如'F:\XXX\WWW'),在XXX目录下创建WWW目录
os.mkdir(path)
#创建多级目录(如'F:\XXX\SSS'),在F盘下创建XXX目录,继续在XXX目录下创建SSS目录
os.makedirs(path)
删除文件或目录
#删除文件(必须是文件)
os.remove(path)
#删除path目录(只能删除一级目录,如'F:\XXX\SSS'),只删除SSS目录
os.rmdir(path)
#删除多级目录(如'F:\XXX\SSS'),必须为空目录,删除SSS、FFF目录
os.removedirs(path)
更改路径
#将当前工作目录更改为指定路径path
os.chdir(path)
os.path() 模块
绝对路径
#返回path的绝对路径
os.path.abspath(path)
查看文件
#判断path是否存在,存在返回True,不存在返回False
os.path.exists(path)
#判断path是否为文件,是返回True,不是返回False
os.path.isfile(path)
#判断path是否目录,是返回True,不是返回False
os.path.isdir(path)
查看文件名或目录
# 将path的目录和文件名分开为元组
os.path.split(path)
# 将path1,怕path2,...进行组合,若path2为绝对路径,则会将path1删除
os.path.join(path1,path2,...)
#返回path中的目录(文件夹部分),结果不包含'\'
os.path.dirname(path)
#返回path中的文件名
os.path.basename(path)
文件名分离
# 分割文件名与路径,返回(f_path, f_name)元组。如果完全使用目录,它也会将最后一个目录作为文件名分离,且不会判断文件或者目录是否存在
split(path)
# 分离文件名与扩展名,返回(f_name, f_extension)元组
splitext(path)
查看文件时间
# 返回文件或目录的最后修改时间,结果为秒数
os.path.getmtime(path)
# 返回文件或目录的最后访问时间,结果为秒数
os.path.getatime(path)
# 返回文件或目录得创建时间,结果为秒数
os.path.getctime(path)
查看文件大小
#返回文件的大小,若是目录则返回0
os.path.getsize(path)
代码练手:
import os
import os.path
import time
'''
# os模块与操作系统相关的一个模块,可以调用系统文件或应用程序
print(os.system("notepad.exe"))
print(os.system("calc.exe"))
print(os.system('cmd'))
'''
'''
# 直接调用可执行文件(如:打开网易云音乐)
print(os.startfile('F:\\CloudMusic\\cloudmusic.exe'))
'''
print('当前的操作系统平台是:{} ,请注意具体语法!!!'.format (os.name))
print(os.getcwd()) # 获取当前目录路径
print(os.listdir('../')) # 列出当前路径下的文件和目录详细
print( 'apb' in os.listdir('../'))
#:f = open(r"C:\Users\xxxx\Desktop\e_python\py.log",mode='r', buffering= -1, encoding = 'utf-8')
with open(r"C:\Users\xxxx\Desktop\e_python\py.log",mode='r', buffering= -1, encoding = 'utf-8') as f:
for line in f.readlines():
print(line.strip())
f.close()
dir_name = 'my_python'
# 开始创建目录
for i in range(10):
if os.path.exists(os.getcwd()+'\\'+ dir_name +'_'+'{}'.format(i)) == False :
os.mkdir(dir_name+'_'+'{}'.format(i)) # 创建目录; 创建多级目录,递归创建使用 makedirs(path1/path2,[mode])
time.sleep(1)
print('你好,第{}个文件夹,已创建完毕!'.format(i))
else:
print('你好,第{}个文件夹,已经存在,跳过创建!'.format(i))
print('第一阶段,所有文件夹创建完毕!')
# 显示所有文件夹的绝对路径
for i in range(10):
print(os.path.abspath(dir_name +'_'+'{}'.format(i)))
# 分离文件目录+文件名字
for i in range(10):
print(os.path.split(os.getcwd()+'\\'+ dir_name +'_'+'{}'.format(i)))
# 分离文件名+扩展名字
for i in range(10):
print(os.path.splitext(os.getcwd()+'\\'+ dir_name +'_'+'{}'.format(i)))
# 从文件名字中提取文件路径
for i in range(10):
print(os.path.dirname(os.getcwd()+'\\'+ dir_name +'_'+'{}'.format(i)))
# isdir or isfile
for i in range(10):
print(os.path.isdir(os.getcwd()+'\\'+ dir_name +'_'+'{}'.format(i)),'是一个文件目录',os.path.getmtime(os.getcwd()+'\\'+ dir_name +'_'+'{}'.format(i)))
print(os.path.isfile(os.getcwd()+'\\'+ dir_name +'_'+'{}'.format(i)),'是一个文件',os.path.getmtime(os.getcwd()+'\\'+ dir_name +'_'+'{}'.format(i)))
# # 返回文件或目录的最后修改时间,结果为秒数
# os.path.getmtime(path)
# # 返回文件或目录的最后访问时间,结果为秒数
# os.path.getatime(path)
# # 返回文件或目录得创建时间,结果为秒数
# os.path.getctime(path)
# 删除创建的目录
for i in range(10):
os.rmdir(os.getcwd()+'\\'+ dir_name +'_'+'{}'.format(i)) # 删除目录; 删除多级目录,使用 removedirs[path1/path2]
time.sleep(1)
print('你好,第{}个文件夹,已被删除!'.format(i))
print('第二阶段,所有文件夹均已被删除!')
# for 'my_python'+'_'+ '%s' % (i) in os.listdir('./'):
# os.rmdir(os.getcwd()+'\\'+dir_name)