OS模块
封装了posit, mac 和nt。 操作系统功能, 涉及文件及目录等操作。不受平台限制。os模块允许一个程序不需要任何改动,同时在linux 和 windows下运行。和windows下powershell以及linux里的command操作类同。
常用操作
#!usr/bin/env python # -*- coding:utf-8 -*- # os模块的操作 import os print(os.getcwd()) # 获取当前目录, 即当前python脚本工作的目录路径 # 类似Linix中pwd os.chdir("C:\Users") # 第一个为转换符 print(os.getcwd()) # 返回 C:Users os.chdir(r"C:UsersjanejDocuments1. Self educationPythonMemoModuel 2 函数Module") # 推荐方法 print(os.getcwd()) # 返回 C:UsersjanejDocuments1. Self educationPythonMemoModuel 2 函数Module # change dir, 改变当前脚本工作 print(os.curdir) # 属性非操作,当前目录 print(os.pardir) # 属性非操作,父级目录 os.makedirs(r"C:acd") # 递归地创建文件。在Linux中,如果父级目录(比如c)还不村子,文件d是无法创建的。 makedirs实现此功能。 os.removedirs(r"C:acd") # 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推 # 应用:清理空文件夹 os.mkdir(r'C:a') # 在a文件没有创建的情况下,不能创建b os.mkdir(r'C:a') # 一步一步创建 os.rmdir(r'C:a') # 同理mkdir os.rmdir(r'C:a') print(os.listdir()) # 返回:['Intro', 'json', 'os_M', 'pickle', 'random_M', 'sys', 'Times_M'] print(os.listdir('.')) # 返回同上,返回当前文件所在目录 print(os.listdir('..')) # 返回当前目录的上一级。 返回:['Decorator', 'Generator', 'Iter.py', 'Module'] os.remove() # 删除一个文件,变量为文件路径 os.rename('oldname','newname') # oldname 代表文件路径老名字,newname新名字的文件路径 print(os.stat(r'Intro')) # 返回:os.stat_result(st_mode=16895, st_ino=5910974510965550, st_dev=613980378, st_nlink=1, st_uid=0, st_gid=0, st_size=4096, st_atime=1502373417, st_mtime=1502373417, st_ctime=1502369942) # 返回指定文件的属性; atime-存储时间, mtime 修改时间 print(os.sep) # # 输出操作系统特定的路径分隔符。 # 不同平台的分隔符不一样。 win下为“\”,Linux下为“/”。 print(os.linesep) # # 输出当前操作系统特定的行终止符 # win下为“ ”, Linux下为“ ” print(os.pathsep) # ; # 输出用于分隔文件路径的字符串 # win下为分号“;”, Linux下为“:” print(os.name) # nt # 输出字符串指示当前使用平台 # win下为“nt”, Linus下为“posix” print(os.system("dir")) # 函数语法:os.system(command) # 用于执行命令, win下如dir,ipconfig/all print(os.environ) # 返回为dictionary, 查看当前系统的环境变量
os.path操作
#!usr/bin/env python # -*- coding:utf-8 -*- # os.path 路径操作, 变量全路径 import os print(os.path.abspath(__file__)) # C:UsersjanejDocuments1. Self educationPythonMemoModuel 2 函数Moduleos_MM_os2.py # 返回path规范化的绝对路径。 __file__表示取当前文件 print(os.path.split(__file__)) # ('C:/Users/janej/Documents/1. Self education/Python/Memo/Moduel 2 函数/Module/os_M', 'M_os2.py') # 将path分隔程目录和文件名的元组返回 print(os.path.dirname(__file__)) # C:/Users/janej/Documents/1. Self education/Python/Memo/Moduel 2 函数/Module/os_M # 返回path的目录,其实就是os.path.split的第一个元素 print(os.path.basename(__file__)) # M_os2.py # 返回path最后的文件名。 如果path以/或结尾,那么就会返回控制。 即os.path.split(path)的第二元素 print(os.path.exists(r"C:")) # True # 判断路径是否存在,返回True如果path存在。 # win 有多个根目录有C:或D:,可以随意分盘; linux 下只有“” print(os.path.isabs(__file__)) # True # 返回True如果path是绝对路径 print(os.path.isfile(__file__)) # True # 返回True,如果path是一个存在的文件。 print(os.path.isdir(__file__)) # False # 如果path是一个存在的目录,则返回为True print(os.path.join(r"C:",r"a.txt")) # 将多个路径组合后返回,第一个绝对路劲之前的参数将被忽略 print(os.path.getatime(__file__)) # 1502633559.1595118 # 返回path所指向的文件或者目录的最后存取时间 print(os.path.getmtime(__file__)) # 1502633559.1595118 # 返回path所指向的文件或者目录的最后修改时间