# -*-coding: utf-8 -*-import osimport shutil'''OS模块简单的来说它是一个Python的系统编程的操作模块,可以处理文件和目录这些我们日常手动需要做的操作。'''#------------------------- 常用的os模块函数 --------------------------#-------------os.sep----------------'''os.sep 可以取代操作系统特定的路径分割符。Windows系统通过是“\”,Linux类系统如Ubuntu的分隔符是“/”,而苹果Mac OS系统中是“:”。使用os.sep代替系统分隔符可以实现跨平台,不用担心不能移植Linux下一个路径,  '/usr/share/python' 那么上面的 os.sep 就是 ‘/’Windows下一个路径,  '\usr\share\python' 那么上面的 os.sep 就是 '\'。上面那个路经写成 os.sep+'usr'+os.sep+'share'+os.sep+'python', 系统就会自动替换成当前系统的路径分割符,不用人为修改'''strPath = os.sep + 'usr' + os.sep + 'share' + os.sep + 'python'print(strPath)#/usr/share/python#-------------os.linesep----------------'''os.linesep 字符串给出当前平台使用的行终止符#Windows使用'\r\n',Linux使用'\n'而Mac使用'\r'。'''str1 = 'hello' + os.linesep + 'world' + os.linesepprint(str1)#hello#world##-------------os.name----------------'''os.name 输出字符串指示正在使用的平台。如果是window 则用'nt'表示,对于Linux/Unix用户,它是'posix'。'''print(os.name)#posix#-------------os.system()----------------'''os.system() 运行shell命令。'''#os.system('cmd') #启动dos#-------------os.getcwd()----------------'''os.getcwd() 函数得到当前工作目录,即当前Python脚本工作的目录路径。'''print(os.getcwd())#/Users/xxx/Documents/Python#-------------os.chdir(path)----------------'''os.chdir(path) 改变当前路径到path路径中,即创建生成文件,操作文件的目录。'''#os.chdir(r'/Users/xxx/Documents') #设为目录/Users/xxx/Documents#-------------os.listdir(path)----------------'''os.listdir() 返回指定目录下的所有文件和目录名。path: 路径名'''print(os.listdir(os.getcwd()))#['.DS_Store', '.idea', 'class_test.py', 'fileDir', 'os_test.py', 'os_test.py', 'hello.txt', 'str_test.py']#-------------os.mkdir(path, mode=0777)----------------'''os.mkdir(path) 创建一个文件夹path: 路径mode: 操作权限产生异常的可能原因:(1) 路径不存在(2) 同名文件夹已存在时(3) 驱动器不存在(4) 磁盘已满(5) 磁盘是只读的或没有写权限'''os.mkdir('fileDir')#-------------os.rmdir(path)----------------'''os.rmdir(path) 删除一个文件夹path: 路径产生异常的可能原因:(1) path 不存在(2) path 子目录中有文件或下级子目录(3) 没有操作权限或只读'''os.rmdir('fileDir')#-------------os.makedirs(path, mode=0777)----------------'''os.makedirs(path) 创建多层文件夹path: 路径mode: 操作权限产生异常的可能原因:(1) 磁盘路径不存在, 如 K:\dir1\dir2 K盘不存在时(2) 同名文件夹已存在时(3) 驱动器不存在(4) 磁盘已满(5) 磁盘是只读的或没有写权限'''os.makedirs('fileDir1/fileDir2/fileDir3')#-------------os.rmtree(path)----------------'''os.rmtree(path) 删除一个文件夹以及内部的文件夹及文件path: 路径注意要引入: import shutil产生异常的可能原因:(1) path 不存在(2) path 子目录中有文件或下级子目录(3) 没有操作权限或只读'''shutil.rmtree('fileDir1')#-------------创建文件----------------'''直接以'w'写的方式打开关闭文件即可'''filename = 'hello.txt'f = open(filename, 'w')f.close()#-------------os.remove(filename)----------------'''os.remove(filename) 删除一个文件,非文件夹filename: 文件名(带后缀名)产生异常的可能原因:(1) path 不存在(不管是文件还是文件夹)(2) 驱动器不存在(3) 磁盘已满(4)磁盘是只读的或没有写权限'''os.remove('hello.txt')#------------------------- 常用的os模块函数 之 path模块 --------------------------#-------------os.path.basename(path)----------------'''os.path.basename(path)  返回传入路径的最后一个的文件名'''print(os.getcwd())#/Users/xxx/Documents/Pythonprint(os.path.basename(os.getcwd()))#Python#-------------os.path.dirname(path)----------------'''os.path.dirname(path)  返回文件夹所在路径'''print(os.path.dirname(os.getcwd()))#/Users/xxx/Documents#-------------os.path.abspath(path)----------------'''os.path.abspath(path)  返回绝对路径'''print(os.path.abspath('os_test.py'))#/Users/xxx/Documents/Python/os_test.py#-------------os.path.isabs(path)----------------'''os.path.isabs(path)  是否为绝对路径'''print(os.path.isabs('os_test.py'))#Falseprint(os.path.isabs('../Python/os_test.py'))#Falseprint(os.path.isabs(os.getcwd()+'os_test.py'))#True#-------------os.path.commonprefix(path)----------------'''os.path.commonprefix(path)  返回list(多个路径)中,所有path共有的最长的路径'''print(os.path.commonprefix(['/Users/xxx/Documents/Python/', \                            '/Users/xxx/', \                            '/Users/xxx/Documents']))#/Users/xxx/#-------------os.path.exists(path)----------------'''os.path.exists(path)  该路径是否存在未被破坏, 是:返回True, 否:返回False'''print(os.path.exists(os.getcwd()))#Trueprint(os.path.exists(os.getcwd()+'hhhh'+os.sep))#False#-------------os.path.getsize(path)----------------'''os.path.getsize(path)  返回文件大小,如果文件不存在就返回错误'''print(os.path.getsize('os_test.py'))#5503print(os.path.getsize(os.getcwd()))#442#print(os.path.getsize(os.getcwd()+'hhhh'+os.sep))#OSError: [Errno 2] No such file or directory:#-------------os.path.isfile(path)----------------'''os.path.isfile(path)  是否为文件, 找不到也返回False'''print(os.path.isfile(os.getcwd()))#Falseprint(os.path.isfile('os_test.py'))#True#-------------os.path.isdir(path)----------------'''os.path.isdir(path)  是否为文件夹, 找不到也返回False'''print(os.path.isdir(os.getcwd()))#Trueprint(os.path.isdir('os_test.py'))#False#-------------os.path.join(path1[, path2[, ...]])----------------'''os.path.join(path1[, path2[, ...]])  把文件和路径合成一个名, 用来拼接全名'''print(os.path.join(os.getcwd(), 'joindir','os_test.py'))#/Users/xxx/Documents/Python/joindir/os_test.py#-------------os.path.realpath(path)----------------'''os.path.realpath(path)  返回真是路径'''print(os.path.realpath('os_test.py'))#/Users/xxx/Documents/Python/os_test.py#-------------os.path.samefile(path1, path2)----------------'''os.path.samefile(path)  判断两个文件或者路径是否相同'''print(os.path.samefile('os_test.py', 'tuple_test.py'))#Falseprint(os.path.samefile('os_test.py', 'os_test.py'))#Trueprint(os.path.samefile(os.getcwd(), os.path.dirname(os.getcwd())))#Falseprint(os.path.samefile(os.getcwd(), os.getcwd()))#True#-------------os.path.split(path)----------------'''os.path.split(path)  把路径分割成dirname和basename,返回一个元组'''print(os.path.split(os.path.abspath('os_test.py')))#('/Users/xxx/Documents/Python', 'os_test.py')#-------------os.path.splitext(path)----------------'''os.path.splitext(path)  分割文件扩展名,返回路径名和文件扩展名的元组'''print(os.path.splitext(os.path.abspath('os_test.py')))#('/Users/xxx/Documents/Python/os_test', '.py')print(os.path.splitext(os.getcwd()))#('/Users/xxx/Documents/Python', '')