python基础篇 17-os模块
import os
#获取某个目录下的内容 返回list # ['a.json', 'a.py', 'b.py', 'lhy.py', 'os模块.py']等等 print(os.listdir(r'D:\python高级编程\tmz2020\day5')) os.mkdir('python') #在当前py文件夹下 创建文件夹 只能创建一层文件夹 os.makedirs('java/day1') # 创建文件夹,能同时创建多层级的目录,如果父目录存在则直接创建子目录,如父目录不存在 则子 父目录都创建 os.makedirs('java/day3') #父目录不存在的时候,会创建父目录 os.remove('python') #删除文件,不能删除文件夹 入参为绝对路径 os.rmdir('java') #删除空文件夹的 入参为绝对路径 os.rename('java','python') #重命名,文件和文件夹都可以 入参为绝对路径 print(os.getcwd())#获取当前所在的目录 入参为空 os.chdir(r'D:\python高级编程\tmz2020\day4')#进入到某个目录里面 os.mkdir('java') #创建目录 print(os.getcwd()) #查看当前目录 print(os.environ) #获取系统环境变量里面配置的内容 """ os.system() os.popen()执行操作系统的命令 """ result = os.system('ipconfig') #执行操作系统命令的,它只能帮你执行,不能拿到命令的结果 #它返回的是命令执行是否成功,如果返回的是0,代表执行成功 print('!!!!!!!!!',result) result = os.popen('ipconfig').read() print('result,,',result) os.path.join() # 路径拼接 os.path.abspath() # 获取文件或者目录的绝对路径 os.path.split() # 返回元组,把文件和路径分隔开 os.path.dirname() # 获取文件或者目录的父目录 os.walk() #此方法特别重要 重要! 重要! 重要! print(os.path.sep)#当前系统的路径分隔符 print(os.path.isfile('a.py')) #是否为文件 print(os.path.isdir('a.py')) #是否为文件夹 print(os.path.exists('a.py')) #文件/文件夹是否存在 print(os.path.getsize('a.py')) #获取大小 入参为绝对路径 print(os.path.getctime('a.py')) #创建时间 print(os.path.getmtime('a.py')) #修改时间 print(os.path.getatime('a.py')) #最后一个访问时间 # print(os.path.split('/Users/day5/a.py')) #分隔路径和文件名的 # p = 'e:'+os.path.sep+'movies'+os.path.sep+'欧美大片' # print(p) # print(os.path.join('e:','movies','欧美大片','复仇者联盟.mp4')) #拼接路径 # print(os.path.abspath(r'../day4/a.json')) #把相对路径,转换成绝对路径 #/Users/day4/a.json # # print(os.path.dirname(r'/PycharmProjects/day4/a.json') )#取父目录 #e:\xxx\python\sqls for cur_path,dirs,files in os.walk(r'D:\360_import'): #遍历指定文件夹下 所有文件 并 归类 此方法很重要!很重要!很重要! # cur_path 当前目录 # dirs 当前目录下的文件夹 # files 当前目录下的文件 print('当前在%s目录下查找'%cur_path) for file in files: if file.endswith('.mp4') or file.endswith('.avi'): print('发现小电影在%s目录下'%cur_path) break
例子:根据当前文件 获取 工程目录
目录结构如下:
op_sql.py
import os # __file__ 代表当前文件 #D:\python高级编程\tmz-code\day5\python\lib\op_sql.py base_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sql_file = os.path.join(base_path,'sqls','create.sql') print(sql_file)
生成日志脚本
def timestamp_to_str(timestamp=None,format='%Y-%m-%d %H:%M:%S'): '''时间戳转格式化好的时间,如果没有传时间戳,就获取当前的格式化时间''' if timestamp: time_tuple = time.localtime(timestamp) #把时间戳转成时间元组 result = time.strftime(format,time_tuple) #把时间元组转成格式化好的时间 return result else: return time.strftime(format) import time,os,random l = ['ios','android','nginx','tomcat','python','blog','apache','mysql','redis'] for i in l: p = os.path.join('logs',i) os.makedirs(p) for j in range(30): t = int(time.time())-86400*j time_str = timestamp_to_str(t,'%Y-%m-%d') log_name = '%s_%s.log'%(i,time_str) abs_file_path = os.path.join('logs',i,log_name) fw = open(abs_file_path, 'w', encoding='utf-8') if random.randint(1,10)%2==0: fw.write('胜多负少防守打法双方都') fw.close()