Python - os模块,、shutil模块
2022-04-14 11:37 起个昵称 阅读(33) 评论(0) 编辑 收藏 举报os.path.abspath:获取文件或目录的绝对路径
os.path.dirname:获取文件或文件夹的路径
os.path.basename:获取文件名或文件夹名
os.path.splitext:分离文件名与扩展名
os.path.isfile/os.path.isdir:判断是否是文件/目录
os.walk:遍历目录
1 """ 2 os模块 3 """ 4 import os 5 6 """os.path.abspath:获取文件或目录的绝对路径""" 7 # 当前文件所在的目录 D:\python\demo 8 print(os.path.abspath('.')) 9 10 # 当前文件的绝对路径 D:\python\demo\test.py 11 print(os.path.abspath(__file__)) 12 13 # 当前文件同级目录下的xxx.py文件路径,这里只是打印路径,即使文件不存在,也会输出这个路径 14 # D:\python\demo\xxx.py 15 print(os.path.abspath('xxx.py')) 16 17 """os.path.dirname:获取文件或文件夹的路径""" 18 # 输出 D:/python/demo 斜杠跟abspath不一样 19 print(os.path.dirname(__file__)) 20 # 输出空 21 print(os.path.dirname('xxx.py')) 22 # 输出subfolder 23 print(os.path.dirname('subfolder/xxx.py')) 24 25 """os.path.basename:获取文件名或文件夹名""" 26 # 输出当前文件名 test.py 27 print(os.path.basename(__file__)) 28 # 输出 xxx.py 29 print(os.path.basename('/subfolder/xxx.py')) 30 # 输出空 31 print(os.path.basename('/subfolder/')) 32 # 输出subfolder 33 print(os.path.basename('/subfolder')) 34 # 输出subfolder 35 print(os.path.basename('subfolder')) 36 # 综上,basename实际输出最后一个斜杠后的字符串 37 38 """os.path.splitext:分离文件名与扩展名""" 39 # 输出 ('D:/python/demo/test', '.py') 40 print(os.path.splitext(__file__)) 41 # 输出 ('test', '.py') 42 print(os.path.splitext('test.py')) 43 # 输出 ('/subfolder', '') 44 print(os.path.splitext('/subfolder')) 45 46 """os.path.isfile/os.path.isdir:判断是否是文件/目录""" 47 print(os.path.isfile(__file__)) # True 48 print(os.path.isfile('D:/python/demo/test.py')) # True 49 print(os.path.isfile('D:/python/demo')) # False 50 print(os.path.isdir('D:/python/demo/test.py')) # False 51 print(os.path.isdir('D:/python/demo')) # True 52 # 路径必须存在,否做判断为False 53 54 """os.walk:遍历目录""" 55 for root, dirs, files in os.walk(os.path.dirname(__file__)): # 当前文件的目录 56 print(root) # 目录 57 print(dirs) # 列表:目录下的子目录 58 print(files) # 列表:目下下的文件 59 60 for r, d, f in os.walk('D:/python/demo'): 61 print(r) 62 print(d) 63 print(f)
定时删除文件/文件夹
1 def run_task(filepath): 2 """ 3 调用时给出路径后,此函数在此路径下不管是文件或文件夹都会删除 4 :param filepath: 5 :return: 6 """ 7 del_list = os.listdir(filepath) 8 for f in del_list: 9 file_path = os.path.join(filepath, f) # 传入的路径拼接此路径下的文件或文件夹 10 if os.path.isfile(file_path): # 判断是文件,删除此文件 11 os.remove(file_path) 12 elif os.path.isdir(file_path): # 判断是文件夹,则删除此文件夹 13 shutil.rmtree(file_path) 14 15 16 @sched.scheduled_job('cron', day_of_week='*', hour='*', minute='*/3', second='0') # 每三分钟0秒运行一次 17 def scheduled_job(): 18 run_task(path1) 19 run_task(path2) 20 21 22 if __name__ == '__main__': 23 sched.start()
新建文件夹、删除空文件夹、返回当前执行文件所在的目录
1 import os 2 3 4 folder_path = r'D:\Images\20220425\1112' 5 6 os.mkdir(folder_path) # 新建此文件夹 7 8 os.rmdir(folder_path) # 删除空内容的文件夹 9 10 print(os.getcwd()) # 返回当前工作目录