何为OS:
operate system操作系统,如windowsOS、iOS...
与文件有关的操作方法:
- getcwd():
get current work direction获取当前工作目录 - chdir(新目录):
change direction修改当前目录,在之后的操作中将在新目录中执行 - listdir(要查询的文件夹路径):
获取当前文件夹的目录,返回生成列表 - mkdir(创建的路径,权限设置):
make direction在给定路径下创建一个文件 - makedirs(创建的路径,权限设置):
make directions在给定路径下创建一个多级文件夹 - rmdir(要删除文件夹的路径):
remove direction删除一个空文件夹 - removedirs(要删除文件夹的路径):
删除一个多级空文件夹 - rename(被修改的文件夹或文件的路径,修改后的文件名字及其路径):
把一个文件夹或文件改名 - stat(要查询的文件路径):
获取文件或文件夹的信息,返回值为元组
与环境变量相关的方法:
何为环境变量:
一组路径的组合
在执行命令时会提供查找相应文件的路径
- getenv('path'):
get environment variable获取当前环境变量 - putenv('path','要添加的路径'):
put environment variable设置python的环境变量
【注意】在用python进行环境变量的操作时,python会从操作系统中拷贝一个环境变量。getenv是获取当前操作系统的环境变量,而putenv则是向python中的备份环境变量进行添加
因此无法通过getenv来获取putenv添加的路径 - environ['path']:
获取系统环境变量并返回字符串,同时可以对其赋值,达到覆盖当前环境变量的效果
os模块常用的属性:
- curdir:
current direction获取当前相对路径,即. - pardir:
parent direction获取上级相对路径,即.. - path:
os中的子模块 - name:
获取系统标识符:windows为nt,linux或unix的标识符则为posix - sep:
获取当前系统分隔符:windows为\,linux或unix为/ - linsep:
获取当前系统的换行符:windows为\r\n,linux或unix为\n
关于os中子模块path:
- abspath(要转换的路径):
absolute path将相对路径转换为绝对路径 - basename(路径):
返回该路径的主体 - dirname(路径):
返回该路径的路径 - join(绝对路径或相对路径,部分路径):
将两个路径何为一个路径 - spilt(路径):
直接将该路径拆分为一个主体和路径,并返回元组 - splitext(路径):
将该路径拆分为文件后缀与其他部分,并返回元组,常用于求取文件的后缀 - getsize(路径):
将该路径的实际存在的一个文件的大小进行返回,单位为字节 - isdir(路径):
检测是否为一个文件夹,返回bool类型变量 - isfile(路径):
检测是否为一个文件,返回bool类型变量 - islink(路径):
检测是否为一个链接,返回bool类型变量 - exists(路径):
检测该文件是否存在,返回bool类型变量 - isabs(路径):
检测是否为绝对路径,返回bool类型变量 - samefile(路径,路径):
检测两个路径是否指向同一文件或文件夹,返回bool类型变量
和时间有关的方法:
- getctime(路径):
get create time获取文件或文件夹创建时间 - getmtime(路径):
get modify time获取文件或文件夹修改时间 - getatime(路径):
get active time获取文件或文件夹访问时间
利用OS模块实现对一个文件夹的大小计算:
使用递归,先判断输入路径是否为文件夹,若为文件夹则将目录返回为一列表,并通过字符串相加方式得到目录内部各个文件或文件夹的绝对路径,进入递归。递归的限制条件便为输入路径不是文件夹
def searchfilesize(path):
sumsize=0
#进行判断path是否为文件夹
if os.path.isdir(path):
filelist=os.listdir(path)
print(filelist)
for file in filelist:
fpath=path+'\\'+file
sumsize += searchfilesize(fpath)
elif os.path.isfile(path):
sumsize += os.path.getsize(path)
return sumsize
pass
print(searchfilesize('D:\\temp')/1024,'MB')