Python的os模块简介
一、os的方法简介
#在Python中,并没有提供直接操作目录的函数或者对象,而是需要使用内置的os和os.path模块实现。importos#注:如果os.name的输出结果为nt,则表示是在windows操作系统,如果是posix,则表示是Linux、Unix或MacOS操作系统。print(os.name)#linesp:用于获取当前操作系统上的换行符。print(os.linesep)#sep:用于获取当前操作系统所使用的的路径分隔符。print(os.sep)#getcwd():返回当前的工作目录print(os.getcwd())#listdir(path):返回指定路径下的文件及目录信息print(os.listdir(r"D:\pythonProject\venv\homework2"))#mkdir(path[,mode]):创建目录os.mkdir(r"D:\pythonProject\venv\homework2\de")#makedirs(path1/path2......[,mode]):创建多级目录##rmdir(path):删除目录##removedirs(path1/path2......):删除多级目录##chdir(path):把path设置为当前的工作目录##walk(top[,topdown[,onerror]]):遍历目录树,该方法返回一个元组,包括所有路径名,所有目录列表和文件列表3个元素#os.path模块也提供了以下几个常用的目录函数:##abspath(path):用于获取文件或目录的绝对路径##exists(path):用于判断目录或者文件是否存在,如果存在则返回true,否则返回false##join(path,name):将目录与目录或者文件名拼接起来##splitex():分离文件名和扩展名##basename(path):从一个目录中提取文件名##dirname(path):从一个路径中提取文件路径,不包括文件名##isdir(path):用于判断是否为有效路径
二、相对路径与绝对路径
#用于定位一个文件或者目录的字符串被称为路径,在程序开发时,一般设计两种路径,一种是相对路径,一种是绝对路径。importos#获取当前工作目录print(os.getcwd())#获取一个文件的绝对路径print(os.path.abspath(R"homework2\d_os\demo1.py"))#将两个或者多个路径拼接在一起组成一个新的路#注:采用join()函数进行拼接路径的时候,如果在拼接的路径中,没有一个绝对路径,那么最后拼接出来的将是一个相对路径。#并且使用os.path.join()函数拼接路径时,并不会检测该路径是否真实存在。#注:在使用join()函数时,如果要拼接的路径中存在多个绝对路径,那么以从左到右为序最后一次出现的路径为准,并且该路径之前的参数都将被忽略。print(os.path.join("E:\prgram\Python\Code","demo\message.txt"))
importoslst=os.scandir()forfileinlst:print(file,type(file),"",file.name,file.path,file.is_dir())print(os.walk(./))#迭代器#generatorobjectwalkat0xB9EFFBAC0fordirpath,dirname,fileinos.walk(./):print(发现文件夹,dirpath)print(dirname)#dirpath文件夹下的文件print(file)print("=======")
三、查询文件的信息
importos#查询文件的信息forfileinos.scandir():print(file.stat())st_size文件的体积大小(单位:字节byte)st_atime文件的最近访问时间st_mtime文件最近的修改时间st_ctimeWindows系统下表示创建时间st_birthtimeMac、Linux系统下表示创建时间
因为Python的st_atime与习惯不同。利用time
(Unix时间戳,不是给人看的)
利用datatime模块
importtimeimportdatetimeprint(time.ctime())#单位是secondprint(type(time.ctime()))#MonJun:49:that_time=datetime.datetime.fromtimestamp()print(that_time)print(type(that_time))#可以获取年月日、时分秒print(that_time.year)print(that_time.month)print(that_time.day)print(that_time.hour)print(that_time.minute)print(that_time.second)输出:MonJun:49:classstr-06-:49:03classdatetime.datetime6493
#获取特定的时间的文件importosimportdatetimeforfileinos.scandir():that=file.stat()start_time=that.st_ctimeuser_time=datetime.datetime.fromtimestamp(start_time)hour=user_time.hourifhour=23:print(that)预览时标签不可点收录于话题#个上一篇下一篇