python 2.01 内置模块 os
内置函数 os 操作系统进行交互
-
os模块 判断文件或者目录是否存在 os.exists
os.path.exists(r'D:\Python之旅\123.txt') os.path.exists(r'imgaes') -
重明名文件 os.rename(原文件名,新文件)
重命名文件 os.rename('123.py','456.py') -
删除文件 os.remove
删除文件 os.remove('123.txt') -
print(file) 打印当前文件的绝对路径
print(__file__) -
os.path.abspath(当前文件的绝对路径)
-
os.getcwd() # 获取当前文件的文件夹
data = os.getcwd() # 获取当前文件的目录 data = os.path.dirname(data) # 获取当前文件的目录的上一级目录 print(data) -
os.path.dirname(file)返回当前文件的上一级的目录
-
os.path.dirname(os.path.abspath(file))取文件所在目录的绝对路径
BASE_log = os.path.dirname(os.path.dirname(os.path.dirname(__file__))) # 取当前文件的根目录 BASE_log = os.path.dirname(os.path.dirname(__file__)) # 取当前文件的上一级目录 print(BASE_log) # 返回当前文件目录 # print(BASE_log1) #返回当前文件的根目录 BASE_log1 = os.path.dirname(os.path.abspath(__file__)) print(BASE_log1) # 返回当前文件目录的绝对路径 -
windows和linux目录分割符不同,为了解决兼容问题,使用os.path.join(目录,文件名) 拼接,不需要使用 /
BASE_log = os.path.dirname(os.path.dirname(os.path.dirname(__file__))) log_path = r'%s\log\access.log'%(BASE_log) log_path =os.path.join(BASE_log,'log','access.log') -
判断路径是否存在os.path.isdir
-
递归创建文件夹 os.makedirs() 创建目录 os.mkdir
-
判断是否是文件夹 os.isdir
-
空文件夹删除os.rmdir ()
-
删除目录os.removedirs()
创建递归目录 os.makedirs(r'D:\1\1\1\1') 创建目录 os.mkdir(r'D:\1') 删除目录 删除多级目录 os.removedirs('') 只能删除空目录 os.rmdir('') -
当前执行文件环境变量的查询添加 - 程序结束后就没有了, 临时使用
os.environ['longin_user']='zhangsan' # 添加到环境变量的字典中 print(os.environ) -
os启动 关闭软件 打开资源管理器
# 打开一个软件 + 路径 # os.startfile(r'firefox.exe') # 普通文件或者软件 使用os.startfile() 函数打开 def statr_exe(exe): # p4 用subprocess.Popen 启动 subprocess.Popen(exe) def network_file_dir(name): # 远程共享文件使用 explorer 打开 os.system("explorer.exe %s"%name) def kill_process(name): os.system('taskkill /T /F /im %s'%name) -
在指定目录下找文件
# 指定目录下查找 path = r"D:\Program Files" # # dirs= os.listdir(path) # for file in dirs: # # print(file)
print(os.listdir(r'D:\python_work'))
返回指定路径下的文件和文件夹列表。
返回的数据类型是列表
-
os.walk(dirpath)
def search_filedir(file_name,dirpath='C:'): # path = r"D:\Program Files" for root ,dirs,files in os.walk(dirpath): # print(dirs) for file in files: if file_name == file: return os.path.join(root,file_name) res = search_filedir('python.exe')
sys.exit(n)
标准的退出函数,会抛出一个 SystemExit 异常,可以在捕获异常处执行其他工作,比如清理资源占用
如果 n 为 0,则表示成功; 非 0 则会产生非正常终止
另外,除了可以传递整型,也可以传递对象,比如 None 这将等价于数字 0,如果值不是 None 那么其他类型的对象都视为数字 1(也就是非正常终止)
在实际应用中,可以使用 sys.exit("YOUR ERROR MSG") 当做快捷退出程序的方式并附加一段消息
os._exit(n)
直接退出进程,并返回状态 n,不处理清理过程,不刷新标准输入输出 buffers。
标准退出请使用 sys.exit(n), os._exit(n) 一般用于 os.fork() 创建的子进程。
quit()
只被用于解释器
exit()
同 quit(),exit() 的出现更多是出于用户友好的目的(因为 exit() 更常见一些,更符合用户习惯一些?)
总结
正常使用 sys.exit(n)
对 os.fork() 创建的子进程使用 os._exit(n)
在解释器调试使用 quit()/exit()
浙公网安备 33010602011771号