模块之 import os 模块一

1.os模块是什么?

 os模块是与操作系统交互的一个接口

import os
把绝对路径不符合规范的/改成操作系统默认的格式
p=os.path.abspath('C:\pythone\os模块.py')
print(p)
p1=os.path.abspath('os模块.py')#给相对路径找到绝对路径
print(p1)

os.path.split()#把一个路径分成两段,第二段是一个文件夹或文件
p2=os.path.split('C:\pythone\os模块.py')
print(p2)
p3=os.path.split('C:\pythone')
print(p3)

判断文件/文件夹是否存在
p6=os.path.exists('C:\pythone\os模块.py')#如果有这个文件返回True
print(p6)
p5=os.path.exists('C:\pythone\lll模块.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作业\作业\day19\os模块.py')#判断是否是文件
print(p9)

path = os.path.join('D:\sylar\s15','abc')# 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
print(path)
size=os.path.getsize('C:\python作业\作业\day19\os模块.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:\sylar\s15')
# 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的大小

 

posted @ 2018-08-21 21:44  落花~伤城  阅读(1358)  评论(0编辑  收藏  举报