1.os模块是什么?
os模块是与操作系统交互的一个接口
import os
把绝对路径不符合规范的/改成操作系统默认的格式
p=os.path.abspath('C:pythoneos模块.py')
print(p)
p1=os.path.abspath('os模块.py')#给相对路径找到绝对路径
print(p1)
os.path.split()#把一个路径分成两段,第二段是一个文件夹或文件
p2=os.path.split('C:pythoneos模块.py')
print(p2)
p3=os.path.split('C:pythone')
print(p3)
判断文件/文件夹是否存在
p6=os.path.exists('C:pythoneos模块.py')#如果有这个文件返回True
print(p6)
p5=os.path.exists('C:pythonelll模块.py')#如果没有这个文件返回 False
print(p5)
p7=os.path.isabs('os模块.py')#是否是绝对路径
print(p7)
p8=os.path.isdir('C:python作业作业day19')#判断是否为目录
print(p8)
p9=os.path.isfile('C:python作业作业day19os模块.py')#判断是否是文件
print(p9)
path = os.path.join('D:sylars15','abc')# 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
print(path)
size=os.path.getsize('C:python作业作业day19os模块.py')#文件大小
print(size)
size1=os.path.getsize('C:python作业作业day19')#文件夹大小时4096
print(size1)
循环 # 堆栈思想
列表 满足一个顺序 先进来的后出去
lst=[r'C:python作业',] #列表的第一个目录是要我统计的目录
s=0
while lst:
p1=lst.pop() #给p1赋值为路径
p1_list=os.listdir(p1)#列出列出所有的文件和目录
# print(p1_list) #打印出来'C:python作业'的所有一级文件的内容
for name in p1_list: #循环所有的文件目录
p2=os.path.join(p1,name)#加上绝对路径('C:python作业')加循环出来的目录
if os.path.isdir(p2):#判断循环出来是否是文件夹
lst.append(p2)#如果是把它加入到lst中重新循环
else:
s+=os.path.getsize(p2)#如果不是目录把文件大小加起来
print(s)
递归我水平太菜了,递归不会哈哈只好找别人的
# 递归 # def func(path): # size_sum = 0 # name_lst = os.listdir(path) # for name in name_lst: # path_abs = os.path.join(path,name) # if os.path.isdir(path_abs): # size = func(path_abs) # size_sum += size # else: # size_sum += os.path.getsize(path_abs) # return size_sum # # ret = func(r'D:sylars15') # print(ret)
os.makedirs('dirname1/dirname2') 可生成多层递归目录
os.removedirs('dirname1') 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
os.mkdir('dirname') 生成单级目录;相当于shell中mkdir dirname
os.rmdir('dirname') 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
os.listdir('dirname') 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
os.remove() 删除一个文件
os.rename("oldname","newname") 重命名文件/目录
os.stat('path/filename') 获取文件/目录信息
os.system("bash command") 运行shell命令,直接显示
os.popen("bash command).read() 运行shell命令,获取执行结果
os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径
os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cd
os.path
os.path.abspath(path) 返回path规范化的绝对路径 os.path.split(path) 将path分割成目录和文件名二元组返回
os.path.dirname(path) 返回path的目录。其实就是os.path.split(path)的第一个元素
os.path.basename(path) 返回path最后的文件名。如何path以/或结尾,那么就会返回空值。即os.path.split(path)的第二个元素
os.path.exists(path) 如果path存在,返回True;如果path不存在,返回False
os.path.isabs(path) 如果path是绝对路径,返回True
os.path.isfile(path) 如果path是一个存在的文件,返回True。否则返回False
os.path.isdir(path) 如果path是一个存在的目录,则返回True。否则返回False
os.path.join(path1[, path2[, ...]]) 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
os.path.getatime(path) 返回path所指向的文件或者目录的最后访问时间
os.path.getmtime(path) 返回path所指向的文件或者目录的最后修改时间
os.path.getsize(path) 返回path的大小