返回列表 发帖

文件夹操作

例子一:
判断文件夹是否存在:

#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']
<class 'list'>

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>

返回列表