os模块
os模块与操作系统交换的一个接口
os常用方法:
1 os.remove(‘path/filename’) 删除文件 2 3 os.rename(oldname, newname) 重命名文件 4 5 os.walk() 生成目录树下的所有文件名 6 7 os.chdir('dirname') 改变目录 8 9 os.mkdir/makedirs('dirname')创建目录/多层目录 10 11 os.rmdir/removedirs('dirname') 删除目录/多层目录 12 13 os.listdir('dirname') 列出指定目录的文件 14 15 os.getcwd() 取得当前工作目录 16 17 os.chmod() 改变目录权限 18 19 os.path.basename(‘path/filename’) 去掉目录路径,返回文件名 20 21 os.path.dirname(‘path/filename’) 去掉文件名,返回目录路径 22 23 os.path.join(path1[,path2[,...]]) 将分离的各部分组合成一个路径名 24 25 os.path.split('path') 返回( dirname(), basename())元组 26 27 os.path.splitext() 返回 (filename, extension) 元组 28 29 os.path.getatimectimemtime 分别返回最近访问、创建、修改时间 30 31 os.path.getsize() 返回文件大小 32 33 os.path.exists() 是否存在 34 35 os.path.isabs() 是否为绝对路径 36 37 os.path.isdir() 是否为目录 38 39 os.path.isfile() 是否为文件
举例演示
1 #os模块就是对操作系统进行操作,使用该模块必须先导入模块: 2 import os 3 4 # getcwd() 获取当前工作目录(当前工作目录默认都是当前文件所在的文件夹) 5 res = os.getcwd() 6 print(res) 7 8 #chdir() 改变当前工作目录 9 10 os.chdir("G:/2020老男孩全栈/day14 常用模块") 11 12 res1 =os.getcwd() 13 print(res1) 14 15 #操作时如果书写完整的路径则不需要考虑默认工作目录的问题,按照实际书写路径操作 16 open('02.txt','w') 17 18 # open("完整的路径","模式") 19 20 #listdir () 获取指定的文件夹中所有的内容的名称列表 21 22 res2=os.listdir("G:/2020老男孩全栈/day14 常用模块") 23 print(res2) 24 25 26 """ 27 import os 28 #mkdir() 创建文件夹 29 os.mkdir("kwx") 30 31 # makedir 递归创建文件夹 32 # os.makedirs("G:/2020老男孩全栈/day14 常用模块/a/b/c/d") 33 34 35 # rmdir() 删除空目录 36 # os.rmdir("kwx") 37 38 #removedirs 递归删除文件夹 必须都是空目录 39 # os.removedirs("G:/2020老男孩全栈/day14 常用模块/a/b/c/d") 40 41 42 43 #rename()文件 或文件夹重命名 44 45 # os.rename("G:/2020老男孩全栈/day14 常用模块/a","G:/2020老男孩全栈/day14 常用模块/abc") 46 # os.rename("02.txt","002.txt") 47 48 # stat()获取文件或者文件夹的信息 49 result=os.stat("G:/2020老男孩全栈/day14 常用模块/1.0时间模块.py") 50 print(result) 51 52 53 # system()执行系统命令(危险函数) 54 #result = os.system('ls -al') #获取隐藏文件 55 #print(result) 56 57 58 #环境变量 59 ''' 60 环境变量就是一些命令的集合 61 操作系统的环境变量就是操作系统在执行系统命令时搜索命令的目录的集合 62 ''' 63 #getenv() 获取系统的环境变量 64 result = os.getenv('PATH') 65 print(result.split(':')) 66 67 #putenv() 将一个目录添加到环境变量中(临时增加仅对当前脚本有效) 68 #os.putenv('PATH','/home/sy/下载') 69 #os.system('syls') 70 71 #exit() 退出终端的命令 72 73 #os模块中的常用值 74 #curdir 表示当前文件夹 .表示当前文件夹 一般情况下可以省略 75 print(os.curdir) 76 77 #pardir 表示上一层文件夹 ..表示上一层文件夹 不可省略! 78 print(os.pardir) 79 80 #os.mkdir('../../../man')#相对路径 从当前目录开始查找 81 #os.mkdir('/home/sy/man1')#绝对路径 从根目录开始查找 82 83 #name 获取代表操作系统的名称字符串 84 print(os.name) #posix -> linux或者unix系统 nt -> window系统 85 86 #sep 获取系统路径间隔符号 window -> linux ->/ 87 print(os.sep) 88 89 #extsep 获取文件名称和后缀之间的间隔符号 window & linux -> . 90 print(os.extsep) 91 92 #linesep 获取操作系统的换行符号 window -> linux/unix -> 93 print(repr(os.linesep)) 94 95 96 97 #导入os模块 98 import os 99 100 #以下内容都是os.path子模块中的内容 101 102 #abspath() 将相对路径转化为绝对路径 103 path = './boys'#相对 104 result = os.path.abspath(path) 105 print(result) 106 107 #dirname() 获取完整路径当中的目录部分 & basename()获取完整路径当中的主体部分 108 path = '/home/sy/boys' 109 result = os.path.dirname(path) 110 print(result) 111 112 result = os.path.basename(path) 113 print(result) 114 115 #split() 将一个完整的路径切割成目录部分和主体部分 116 path = '/home/sy/boys' 117 result = os.path.split(path) 118 print(result) 119 120 #join() 将2个路径合并成一个 121 var1 = '/home/sy' 122 var2 = '000.py' 123 result = os.path.join(var1,var2) 124 print(result) 125 126 #splitext() 将一个路径切割成文件后缀和其他两个部分,主要用于获取文件的后缀 127 path = '/home/sy/000.py' 128 result = os.path.splitext(path) 129 print(result) 130 131 #getsize() 获取文件的大小 132 path = '/home/sy/000.py' 133 result = os.path.getsize(path) 134 print(result) 135 136 #isfile() 检测是否是文件 137 path = '/home/sy/000.py' 138 result = os.path.isfile(path) 139 print(result) 140 141 #isdir() 检测是否是文件夹 142 result = os.path.isdir(path) 143 print(result) 144 145 #islink() 检测是否是链接 146 path = '/initrd.img.old' 147 result = os.path.islink(path) 148 print(result) 149 150 #getctime() 获取文件的创建时间 get create time 151 #getmtime() 获取文件的修改时间 get modify time 152 #getatime() 获取文件的访问时间 get active time 153 154 import time 155 156 filepath = '/home/sy/下载/chls' 157 158 result = os.path.getctime(filepath) 159 print(time.ctime(result)) 160 161 result = os.path.getmtime(filepath) 162 print(time.ctime(result)) 163 164 result = os.path.getatime(filepath) 165 print(time.ctime(result)) 166 167 #exists() 检测某个路径是否真实存在 168 filepath = '/home/sy/下载/chls' 169 result = os.path.exists(filepath) 170 print(result) 171 172 #isabs() 检测一个路径是否是绝对路径 173 path = '/boys' 174 result = os.path.isabs(path) 175 print(result) 176 177 #samefile() 检测2个路径是否是同一个文件 178 path1 = '/home/sy/下载/001' 179 path2 = '../../../下载/001' 180 result = os.path.samefile(path1,path2) 181 print(result) 182 183 184 #os.environ 用于获取和设置系统环境变量的内置值 185 import os 186 #获取系统环境变量 getenv() 效果 187 print(os.environ['PATH']) 188 189 #设置系统环境变量 putenv() 190 os.environ['PATH'] += ':/home/sy/下载' 191 os.system('chls')
实践:
1 在Linux和Mac平台上,该函数会原样返回path,在windows平台上会将路径中所有字符转换为小写,并将所有斜杠转换为饭斜杠。 2 >>> os.path.normcase('c:/windows\system32\') 3 'c:\windows\system32\' 4 5 6 规范化路径,如..和/ 7 >>> os.path.normpath('c://windows\System32\../Temp/') 8 'c:\windows\Temp' 9 10 >>> a='/Users/jieli/test1/\a1/\\aa.py/../..' 11 >>> print(os.path.normpath(a)) 12 /Users/jieli/test1 13 14 15 os路径处理 16 #方式一:推荐使用 17 import os 18 #具体应用 19 import os,sys 20 possible_topdir = os.path.normpath(os.path.join( 21 os.path.abspath(__file__), 22 os.pardir, #上一级 23 os.pardir, 24 os.pardir 25 )) 26 sys.path.insert(0,possible_topdir) 27 28 29 #方式二:不推荐使用 30 os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) 31 32 33 34 import os 35 36 # 获取某一个文件夹下所有的子文件以及子文件夹的名字 37 res = os.listdir('.') 38 print(res) 39 40 #大小 41 size=os.path.getsize(r'G:2020老男孩全栈2020老男孩egon老师福利day22代码 1 时间模块.py') 42 print(size) 43 44 # 应用程序----->>"ls /" 45 46 # os.system("ls /") 47 48 #规定:key 与value必须是字符串 49 50 os.environ['aaaaaaaaaa']='111' 51 print(os.environ) 52 53 print(os.path.dirname(r'/a/b/c/d.txt')) 54 print(os.path.basename(r'/a/b/c/d.txt')) 55 56 57 print(os.path.isfile(r'笔记.txt')) 58 print(os.path.isfile(r'aaa')) 59 print(os.path.isdir(r'aaa')) 60 61 print(os.path.join('a','/','b','c','d')) 62 63 64 65 # 推荐用这种 66 BASE_DIR=os.path.dirname(os.path.dirname(__file__)) 67 # print(BASE_DIR) 68 69 70 # BASE_DIR=os.path.normpath(os.path.join( 71 # __file__, 72 # '..', 73 # '..' 74 # )) 75 # print(BASE_DIR) 76 77 # 在python3.5之后,推出了一个新的模块pathlib 78 from pathlib import Path 79 80 # res = Path(__file__).parent.parent 81 # print(res) 82 83 84 # res=Path('/a/b/c') / 'd/e.txt' 85 # print(res) 86 87 # print(res.resolve())