Board logo

标题: 文件夹操作 [打印本页]

作者: admin    时间: 2019-9-26 10:54     标题: 文件夹操作

例子一: 判断文件夹是否存在: #coding=utf-8 import os dir_1 = "d:/Music" Result_1 = os.path.exists(dir_1) if Result_1 == True: print(f"文件夹{dir_1}存在。") else: print(f"文件夹{dir_1}不存在。") 脚本运行的结果:(文件夹存在时) C:\Users\jacky\Desktop>python xx.py 文件夹d:/Music存在。 C:\Users\jacky\Desktop> 脚本运行的结果:(文件夹不存在时) C:\Users\jacky\Desktop>python xx.py 文件夹d:/Music不存在。 C:\Users\jacky\Desktop> ###### 例子二: 判断文件夹是否存在: #coding=utf-8 import os dir_1 = "d:/Music/" Result_1 = os.path.exists(dir_1) print(Result_1) if Result_1 == True: print(f"文件夹{dir_1}存在。") else: print(f"文件夹{dir_1}不存在。") 脚本运行的结果:(文件夹存在时) C:\Users\jacky\Desktop>python xx.py True 文件夹d:/Music/存在。 C:\Users\jacky\Desktop> 脚本运行的结果:(文件夹不存在时) C:\Users\jacky\Desktop>python xx.py False 文件夹d:/Music/不存在。 C:\Users\jacky\Desktop> ###### 例子三: 判断文件夹是否存在: #coding=utf-8 import os dir_1 = "D:\\Music" Result_1 = os.path.exists(dir_1) print(Result_1) if Result_1 != False: print(f"文件夹{dir_1}存在。") else: print(f"文件夹{dir_1}不存在。") 脚本运行的结果:(文件夹存在时) C:\Users\jacky\Desktop>python xx.py True 文件夹D:\Music存在。 C:\Users\jacky\Desktop> 脚本运行的结果:(文件夹不存在时) C:\Users\jacky\Desktop>python xx.py False 文件夹D:\Music不存在。 C:\Users\jacky\Desktop> ###### 例子四: 创建单层文件夹: #coding=utf-8 import os Path_1 = "d:\\dir1" #目标文件夹(新文件夹) try: os.mkdir(Path_1) print(f"文件夹{Path_1}创建成功。") except Exception as e: print(f"文件夹{Path_1}创建失败,原因: {e}") 脚本运行的结果:(文件夹不存在时) C:\Users\jacky\Desktop>python xx.py 文件夹d:\dir1创建成功。 C:\Users\jacky\Desktop> 脚本运行的结果:(文件夹已经存在时) C:\Users\jacky\Desktop>python xx.py 文件夹d:\dir1创建失败,原因: [WinError 183] 当文件已存在时,无法创建该文件。: 'd:\\dir1' C:\Users\jacky\Desktop> ###### 例子五: 创建多层文件夹: #coding=utf-8 import os Path_1 = "d:\\dir1\\dd2\\dd3" #目标文件夹(新文件夹);实验中,子目录dd2、dd3都不存在 try: os.makedirs(Path_1) print(f"文件夹{Path_1}创建成功。") except: print(f"文件夹{Path_1}已经存在,不能再创建了。") 脚本运行的结果:(目标文件夹不存在时) C:\Users\jacky\Desktop>python xx.py 文件夹d:\dir1\dd2\dd3创建成功。 C:\Users\jacky\Desktop> 脚本运行的结果:(目标文件夹已经存在时) C:\Users\jacky\Desktop>python xx.py 文件夹d:\dir1\dd2\dd3已经存在,不能再创建了。 C:\Users\jacky\Desktop> ###### 例子六: 以列表的形式显示指定目录里的所有文件和文件夹:(不会延伸到子目录) #coding=utf-8 import os dir_1 = "d:/Music" f = list(os.listdir(dir_1)) print(f) print(type(f)) 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py ['1.txt', '2.txt', 'dir1', 'Flask-2.0.3-py3-none-any.whl', '你会爱我到什么时候.mp3', '图片1.png', '图片2.png', '超级英雄.mp3', '青狐狸.mp3'] C:\Users\jacky\Desktop> ###### 例子七: 只显示指定目录里的mp3文件:(不会延伸到子目录) #coding=utf-8 import os dir_1 = "d:/Music/" f = list(os.listdir(dir_1)) K_1 = '.mp3' #文件后缀 for i in range(len(f)): if f[i].endswith(K_1): print(f[i]) 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py 你会爱我到什么时候.mp3 超级英雄.mp3 青狐狸.mp3 C:\Users\jacky\Desktop> ###### 例子八: 把指定目录里的mp3文件复制到别的文件夹: #coding=utf-8 import os import shutil dir_1 = "D:/Music/" dir_2 = "D:/share/" f = list(os.listdir(dir_1)) K_1 = '.mp3' #文件后缀 for i in range(len(f)): if f[i].endswith(K_1): File_1 = dir_1 + f[i] File_2 = dir_2 + f[i] shutil.copyfile(File_1,File_2) 脚本运行的结果:(会把文件夹D:\Music(不会延伸到子目录)里的mp3文件都复制到文件夹D:\share里) C:\Users\jacky\Desktop>python xx.py C:\Users\jacky\Desktop> ###### 例子九: 获取指定文件夹的大小:(不会计算子目录里的文件) #coding=utf-8 import os, re dir_1 = "d:\\Music" def Look_File(path): #显示指定目录及其子目录下的文件、文件夹 for root, dirs, files in os.walk(path, True): print(root) for item in files: print(os.path.join(root, item)) def FileSize(path): #指定目录里的文件大小累加,但不会计算子目录里的文件 size = 0 for root, dirs, files in os.walk(path, True): size += sum([os.path.getsize(os.path.join(root, name)) for name in files]) fsize = size/float(1024*1024) # 默认单位为字节,这里改为MB return round(fsize,2) if __name__ == '__main__': Look_File(dir_1) print("-" * 10) print(f"文件夹{dir_1}的大小:{FileSize(dir_1)} MB") 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py d:\Music d:\Music\1.txt d:\Music\2.txt d:\Music\Flask-2.0.3-py3-none-any.whl d:\Music\你会爱我到什么时候.mp3 d:\Music\图片1.png d:\Music\图片2.png d:\Music\超级英雄.mp3 d:\Music\青狐狸.mp3 d:\Music\dir1 d:\Music\dir1\拥抱这分钟.mp3 d:\Music\dir1\甜言蜜语.mp3 d:\Music\dir1\share ---------- 文件夹d:\Music的大小:11.13 MB C:\Users\jacky\Desktop>python xx.py ###### 例子十: 获取指定文件夹的大小:(不会计算子目录里的文件) #coding=utf-8 import os dir_1 = "d:/Music" def FileSize(path): #指定目录里的文件大小累加,但不会计算子目录里的文件 size = 0 for root, dirs, files in os.walk(path, True): size = size + sum([os.path.getsize(os.path.join(root, name)) for name in files]) fsize = size/float(1024*1024*1024) # 默认单位为字节,这里改为GB return round(fsize,2) if __name__ == '__main__': print(f"文件夹{dir_1}的大小:{FileSize(dir_1)} GB") 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py 文件夹d:/Music的大小:0.01 GB C:\Users\jacky\Desktop> ###### 例子十一: 复制文件夹: #coding=utf-8 import shutil Path_1 = "d:\\Music" #源文件夹 Path_2 = "d:\\Music2" #目标文件夹(新文件夹);必须要有一个完整的文件夹名 try: shutil.copytree(Path_1, Path_2) #连子目录和及其文件也复制过去的;假如目标文件夹已经存在,则会报错 print(f"文件夹{Path_1}复制成功。") except Exception as e: print(f"文件夹{Path_1}复制失败,原因: {e}") 脚本运行的结果:(复制成功时,新文件夹为d:\Music2) C:\Users\jacky\Desktop>python xx.py 文件夹d:\Music复制成功。 C:\Users\jacky\Desktop> 脚本运行的结果:(目标文件夹已经存在时) C:\Users\jacky\Desktop>python xx.py 文件夹d:\Music复制失败,原因: [WinError 183] 当文件已存在时,无法创建该文件。: 'd:\\Music2' C:\Users\jacky\Desktop> ###### 例子十二: 移动文件夹: #coding=utf-8 import shutil Path_1 = "d:\\Music2" #源文件夹 Path_2 = "C:\\Users\\jacky\\Desktop\\" #目标路径 try: shutil.move(Path_1,Path_2) #连子目录和及其文件也移动过去的;假如目标文件夹已经存在,则会报错 print(f"文件夹{Path_1}移动成功。") except Exception as e: print(f"文件夹{Path_1}移动失败,原因: {e}") 脚本运行的结果:(移动成功时,源文件夹就没有了,新文件夹为C:\Users\jacky\Desktop\Music2) C:\Users\jacky\Desktop>python xx.py 文件夹d:\Music2移动成功。 C:\Users\jacky\Desktop> 脚本运行的结果:(目标文件夹已经存在时) C:\Users\jacky\Desktop>python xx.py 文件夹d:\Music2移动失败,原因: Destination path 'C:\Users\jacky\Desktop\Music2' already exists C:\Users\jacky\Desktop> ###### 例子十三: 重命名文件夹: #coding=utf-8 import shutil Path_1 = "C:\\Users\\jacky\\Desktop\\Music2" #源文件夹 Path_2 = "C:\\Users\\jacky\\Desktop\\Music3" #目标文件夹(新文件夹) try: shutil.move(Path_1,Path_2) print(f"文件夹{Path_1}重命名成功。") except Exception as e: print(f"文件夹{Path_1}重命名失败,原因: {e}") 脚本运行的结果:(重命名成功时,源文件夹就没有了,新文件夹为C:\Users\jacky\Desktop\Music3) C:\Users\jacky\Desktop>python xx.py 文件夹C:\Users\jacky\Desktop\Music2重命名成功。 C:\Users\jacky\Desktop> 脚本运行的结果:(源文件夹不存在时) C:\Users\jacky\Desktop>python xx.py 文件夹C:\Users\jacky\Desktop\Music2重命名失败,原因: [Errno 2] No such file or directory: 'C:\\Users\\jacky\\Desktop\\Music2' C:\Users\jacky\Desktop> ###### 例子十三: 删除空的文件夹: #coding=utf-8 import os Path_1 = "C:\\Users\\jacky\\Desktop\\Music3" #目标文件夹 try: os.rmdir(Path_1) print(f"文件夹{Path_1}删除成功。") except Exception as e: print(f"文件夹{Path_1}删除失败,原因: {e}") 脚本运行的结果:(删除成功时) C:\Users\jacky\Desktop>python xx.py 文件夹C:\Users\jacky\Desktop\Music3删除成功。 C:\Users\jacky\Desktop> 脚本运行的结果:(目标文件夹不为空时) C:\Users\jacky\Desktop>python xx.py 文件夹C:\Users\jacky\Desktop\Music3删除失败,原因: [WinError 145] 目录不是空的。: 'C:\\Users\\jacky\\Desktop\\Music3' C:\Users\jacky\Desktop> ###### 例子十四: 删除文件夹:(无论文件夹是不是空的) #coding=utf-8 import shutil Path_1 = "C:\\Users\\jacky\\Desktop\\Music3" #目标文件夹 try: shutil.rmtree(Path_1) print(f"文件夹{Path_1}删除成功。") except Exception as e: print(f"文件夹{Path_1}删除失败,原因: {e}") 脚本运行的结果:(删除成功时) C:\Users\jacky\Desktop>python xx.py 文件夹C:\Users\jacky\Desktop\Music3删除成功。 C:\Users\jacky\Desktop> 脚本运行的结果:(目标文件夹不存在时) C:\Users\jacky\Desktop>python xx.py 文件夹C:\Users\jacky\Desktop\Music3删除失败,原因: [WinError 3] 系统找不到指定的路径。: 'C:\\Users\\jacky\\Desktop\\Music3' C:\Users\jacky\Desktop>




欢迎光临 blog.zhuohua.store (http://blog.zhuohua.store/) Powered by Discuz! 7.2