python shutil模块初学

shuttil 模块 包含一些处理文件的函数。

import shutil 引入包

shutil.copy('C:\\a\\1.txt','C:\\b')                 将1.txt文件复制到路径C:\\b中。

shutil.copy('C:\\a\\1.txt','C:\\b\\33.txt')     将1.txt文件复制到C:\\b中并改名字为33.txt 

需要注意的是使用shutil.copy(), 如果b文件夹中有相同名字的文件,那么b文件中的文件将被覆盖。已测试

 

shutil.copytree(‘G:\\a’,'G:\\b')                      

创建一个新的文件夹G:\\b,并将G:\\a整个文件复制到b下 ,相当于给a做了一个备份,不会覆盖相同名称的文件夹,会报错

shutil.move(‘G:\\a\\22.txt’,'G:\\c')  使用方法和shutil.copy一样,如果G:\\c文件夹中有22.txt文件 他将会被覆盖掉,没有c文件夹会报错

 

删除文件和文件夹

shutil.retree(path)    将删除path处的文件夹,文件夹和里面的文件都会被删除。需要注意的是使用shutil.retree()删除的文件不可以被恢复。

os模块中也有函数可以删除

os.unlink('G:\\python学习\\222\\2.txt') 将删除2.txt文件

os.rmdir(path)   将删除path处的文件夹,但是文件夹必须为空

比较安全的是使用send2trash模块里的send2trash函数来删除文件和文件夹。此函数将删除的文件和文件夹放到回收站,可以从回收站恢复。

send2trash.send2trash('G:\\python学习\\222\\2.txt')

 

遍历文件夹

os.walk(‘文件路径’) 将返回三个值

1.返回当前目录的字符串

2.当前文件夹中子文件夹中的字符串列表

3.当前文件夹在中的文件字符串列表

G:\python学习\222   #主文件夹包含一个子文件夹G:\python学习\222\2和1.txt文件,子文件夹内没有文件。

import os ,shutil

for fold,sub,fil in os.walk('G:\\python学习\\222'):
    print('我是fold',fold)
    print('我是sub',sub)
    print('我是fil',fil)

我是fold G:\python学习\222 
我是sub ['2']   #子文件夹的名字
我是fil ['1.txt']
我是fold G:\python学习\222\2    #这个文件夹里面是空的所有返回的另外两个值也是空的列表。
我是sub [] 
我是fil []

由此可见

第一个返回值主文件夹,字符串

第二个返回值是主文件夹中的子文件夹的名字,列表

第三个返回值是主文件夹中的文件,列表

然后开始迭代

同上遍历子文件夹

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章