一 .os模块
os 模块包括了普遍操作系统的功能
1.name获取操作系统类型
import os print(os.name) # nt 代表是window模块
2.environ 获取操作系统中的环境变量
import os # 获取操作系统中的环境变量 print(os.environ)
3.get获取指定环境变量
print(os.environ.get("PROGRAMFILES"))
# C:Program Files
4.curdir获取当前目录
import os print(os.curdir) # .
5.getcwd()获取当前工作目录
import os print(os.getcwd()) # D:老男孩教育
6.listdir()返回指定目录下的所有文件
import os print(os.listdir(r"D: 1learnpythonpy21")) ['01.txt', '02.txt', '03.txt', '04.txt', '05.txt', 'HHH']
print(os.listdir())
['.idea', '01day', '02day', '03day', '04day', '05day', 'cc.txt', 'test.py', '作业解析', '前面']
7.mkdir rmdir mkdir
import os # 创建文件目录 os.mkdir("Study") # 删除目录 os.rmdir("Study") # 创建绝对目录 os.mkdir(r"E:Studypythonpy22HHH")
# 重命名
os.rename("Study","HHH")
# 删除普通文件
os.remove("HHH1.txt")
8.stat获取文件属性
import os print(os.stat("01day"))
9.abspath查看当前的绝对路径
print(os.path.abspath(".bbbb")) # D:老男孩教育.bbbb
# print(os.path) # <module 'ntpath' from 'D:\python\lib\ntpath.py'>
10.join拼接路径 split 拆分路径
# 拼接路径 # 注意参数二开始不能有斜杠 p1=r"E:Studypythonpy2HHH" p2="name11" print(os.path.join(p1,p2)) #E:Studypythonpy2HHH ame11
# 拆分路径 path2=r"E:Studypythonpy2HHH" print(os.path.split(path2)) #('E:\Studypython\py2', 'HHH')拆分就变成元组了
11.splitext获取扩展名
import os path3="D: 1learnpythonpy21 1.txt" print(os.path.splitext(path3)) #('D:x01learnpython\py2x01x01', '.txt')
12.isdir 判断是否为目录 isfile 是否为文件
import os path3="D: 1learnpythonpy21 1.txt" # 判断是否为目录 print(os.path.isdir(path3)) #False
# 判断文件是否存在
print(os.path.isfile("HHH")) #False
13.exists判断目录是否存在
path6= r"F:dbnodeloginmd5" print(os.path.exists(path6)) # True
14.getsize()获取文件大小
# 获取文件大小 path9= r"F:dbnodeloginmd5login.js" print(os.path.getsize(path9)) #1717字符
15.dirname获取文件目录
# dirname获取文件目录 path3="D: 1learnpythonpy21 1.txt" print(os.path.dirname(path3)) # D:learnpython
# dirname获取文件目录 path10= r"F:dbnodeloginmd5login.js" print(os.path.dirname(path10)) # F:dbnodeloginmd5 # 获取文件名 print(os.path.basename(path10)) #login.js 返回指定路径下的文件和文件夹列表 os.listdir(path)
os案例
# 队列就是先进去的 就先走 相当于排队 # # import collections import os # 队列是先进先出 def aa(path): # 创建一个队列 queue=collections.deque() # 进队 queue.append(path) while len(queue)!=0: # 出队取数据 dirPath=queue.popleft() # 找出所有文件 filesList=os.listdir(dirPath) for fileName in filesList: # 绝对路径 fileAbsPath=os.path.join(dirPath,fileName) #print(fileAbsPath) # E:Studypythonpy2dir.project # E:Studypythonpy2dir2 # E:Studypythonpy2dirapp.js # E:Studypythonpy2dircontroller # E:Studypythonpy2dirmodels # E:Studypythonpy2dir ode_modules # E:Studypythonpy2dirpackage.json # E:Studypythonpy2dirpublic # E:Studypythonpy2diruploads # E:Studypythonpy2dirviews # 判断是否为目录 if os.path.isdir(fileAbsPath): print("目录-----"+fileName) #目录-----controller # 目录-----models # 目录-----node_modules queue.append(fileAbsPath) else: print("普通文件-----"+fileName) # 普通文件-----index.js # 普通文件-----callsite-tostring.js # 普通文件-----event-listener-count.js # 普通文件-----index.js aa(r"E:Studypythonpy2dir")
# 深度遍历 利用 进栈 和 出栈 的知识 import os def getAllDir(path): # 得到目录下的所有目录 filesList=os.listdir(path) # 处理每一个文件、 for fileName in filesList: # 判断路径 是否觉对路径 fileAbsPath=os.path.join(path,fileName) if os.path.isdir(fileAbsPath): print("目录"+fileName) getAllDir(fileAbsPath) else: print("普通文件"+fileName) getAllDir(r"E:Studypythonpy2dir")

# 深度遍历 利用 进栈 和 出栈 的知识 import os def getAllDirDE(path): stack=[] stack.append(path) # print(stack) # ['E:\Studypython\py2\dir'] 处理栈 当前栈为空的时候结束循环 while len(stack)!=0: 从栈里取出数据 dirPath=stack.pop() # print(dirPath) # E:Studypythonpy2dir 目录下所有文件 filesList=os.listdir(dirPath) #print(filesList) # ['.project', '2', 'app.js', 'controller', 'models', 'node_modules', 'package.json', 'public', 'uploads', 'views'] 处理每一个文件 如果是普通文件则打印 如果是目录则将改目录的地址压栈 for fileName in filesList: # print(fileName) # .project 2 app.js controller models node_modules package.json public uploads views fileAbsPath=os.path.join(dirPath,fileName) #print(fileAbsPath) #E:Studypythonpy2dir.project # E:Studypythonpy2dir2 # E:Studypythonpy2dirapp.js # E:Studypythonpy2dircontroller # E:Studypythonpy2dirmodels # E:Studypythonpy2dir ode_modules # E:Studypythonpy2dirpackage.json # E:Studypythonpy2dirpublic # E:Studypythonpy2diruploads # E:Studypythonpy2dirviews # if os.path.isdir(fileAbsPath): 是目录就压栈 print("目录---"+fileName) # 目录---2 # 目录---controller # 目录---models # 目录---node_modules # 目录---public # 目录---uploads # 目录---views stack.append(fileAbsPath) #print(stack) #['E:\Studypython\py2\dir\2'] # ['E:\Studypython\py2\dir\2', 'E:\Studypython\py2\dir\controller'] # ['E:\Studypython\py2\dir\2', 'E:\Studypython\py2\dir\controller', 'E:\Studypython\py2\dir\models'] # ['E:\Studypython\py2\dir\2', 'E:\Studypython\py2\dir\controller', 'E:\Studypython\py2\dir\models', 'E:\Studypython\py2\dir\node_modules'] # ['E:\Studypython\py2\dir\2', 'E:\Studypython\py2\dir\controller', 'E:\Studypython\py2\dir\models', 'E:\Studypython\py2\dir\node_modules', 'E:\Studypython\py2\dir\public'] else: 打印普通文件 print("普通文件--"+fileName) # 普通文件--.project # 普通文件--app.js # 普通文件--package.json # 普通文件--album.ejs # 普通文件--err.ejs # 普通文件--index.ejs # 普通文件--1 - 副本.jpg # 普通文件--1.jpg # 普通文件--2 - 副本.jpg # 普通文件--2.jpg # 普通文件--3 - 副本.jpg # 普通文件--3.jpg # 普通文件--4 - 副本.jpg # 普通文件--4.jpg # 普通文件--5 - 副本.jpg # 普通文件--5.jpg # 普通文件--bootstrap.js # 普通文件--bootstrap.min.js # 普通文件--jquery-1.12.4.js # 普通文件--npm.js # 普通文件--1.jpg # 普通文件--2.jpg # 普通文件--4.png getAllDirDE(r"E:Studypythonpy2dir")
二 .sys模块
sys模块 是与python解释器交互模块
import sys # sys模块 是与python解释器交互模块 print(sys.platform) # 返回操作系统 print(sys.argv) # 返回第一个元素程序本身路径 print(sys.version) # 返回python版本 print(sys.path) # 返回环境变量的路径 # # win32 # ['D:/老男孩教育/03day/sys模块/01.py'] # 3.6.3 (v3.6.3:2c5fed8, Oct 3 2017, 18:11:49) [MSC v.1900 64 bit (AMD64)] # ['D:\老男孩教育\03day\sys模块', 'D:\老男孩教育', 'D:\python\python36.zip', 'D:\python\DLLs', # 'D:\python\lib', 'D:\python', 'D:\python\lib\site-packages', # 'D:\python\lib\site-packages\tornado-5.1.1-py3.6-win-amd64.egg']
import sys # sys模块 是与python解释器交互模块 print(sys.platform) # 返回操作系统 print(sys.argv) # 返回第一个元素程序本身路径 print(sys.version) # 返回python版本 print(sys.path) # 返回环境变量的路径 # # win32 # ['D:/老男孩教育/03day/sys模块/01.py'] # 3.6.3 (v3.6.3:2c5fed8, Oct 3 2017, 18:11:49) [MSC v.1900 64 bit (AMD64)] # ['D:\老男孩教育\03day\sys模块', 'D:\老男孩教育', 'D:\python\python36.zip', 'D:\python\DLLs', # 'D:\python\lib', 'D:\python', 'D:\python\lib\site-packages', # 'D:\python\lib\site-packages\tornado-5.1.1-py3.6-win-amd64.egg']
import sys # 返回程序执行的本身路径 print(sys.argv) # ['D:/learnPython/py5/02sys模块.py'] # print=(sys.exit(n)) # 查看版本 print(sys.version) # 3.6.3 (v3.6.3:2c5fed8, Oct 3 2017, 18:11:49) [MSC v.1900 64 bit (AMD64)] # print(sys.maxint) # 返回模块的搜索路径 print(sys.path) # ['D:\learnPython\py5', 'D:\learnPython', 'D:\python\python36.zip', 'D:\python\DLLs', 'D:\python\lib', 'D:\python', 'D:\python\lib\site-packages'] # 返回操作系统 print(sys.platform) # win32 # 进度条 import time for i in range(30): sys.stdout.write("#") time.sleep(0.1) sys.stdout.flush() # flush() 刷新