0
点赞
收藏
分享

微信扫一扫

使用 Python 组织文件

hoohack 2022-11-25 阅读 191

    在 Python 中, shutil 模块还提供了一系列对文件和文件集合的高级操作。特别是提供了一些支持文件拷贝和删除的函数。下面介绍一些组织文件常用操作。



复制文件


    使用 shutil.copy(src, dst) 可以把 src 路径下的指定文件复制到 dst 路径下,如果 dst 为路径,则复制后的文件名和原文件一致。如果 dst 为路径加上文件名,则复制后的文件名为当前指定的文件名。最后该函数会返回文件的路径字符串。

    注意:即便是高级文件拷贝函数也无法拷贝所有的文件元数据。例如在 Windows 操作系统上,不会拷贝文件所有者、ACL 和替代数据流。

    下面的例子演示了如何将当前用户下的 python.py 文件拷贝到 D 盘并更改其文件名为 p1.py 。

>>> import shutil
>>> shutil.copy('C:\\Users\\Caizi\\python.py', 'D:\\p1.py')
'D:\\p1.py'



复制整个文件夹及其

包含的文件和文件夹


    使用 shutil.copytree(src, dst) 可以将 src 路径的整个文件夹及其包含的文件和文件夹复制到新指定的 dst 路径下。该函数会返回 dst 的文件夹的路径字符串。下面的例子演示了如何将 python 文件夹里的所有内容复制到 D:\python_backup 目录下。

>>> import shutil
>>> shutil.copytree('C:\\Users\\Caizi\\python', 'D:\\python_backup')
'D:\\python_backup'



移动文件和文件夹


    使用 shutil.move(src, dst) 可以将 src 路径的文件夹移动到 dst 路径下,返回移动文件夹的新绝对路径字符串。

    注意:使用此方法如果新路径下有文件与要移入的文件重名,会自动替换文件,删除旧文件,保留新移入的文件。

>>> import shutil
>>> shutil.move('C:\\Users\\Caizi\\python', 'D:\\python_backup')
'D:\\python_backup'



文件重命名


    使用 shutil.move(src, dst) 还可以将文件重命名。下面的例子演示了如何把当前目录下的 python.py 文件重命名为 day.py 。

    注意:第二个参数为文件名,文件有扩展名的一定要加扩展名。如果只指定了 day ,最后的文件名就为 day ,而不是你想象中的 day.py 。

>>> import shutil
>>> shutil.move('C:\\Users\\Caizi\\python.py', 'C:\\Users\\Caizi\\day.py')
'C:\\Users\\Caizi\\day.py'



永久删除文件


    使用 os.unlink(path) 或者 os.remove(path) 可以将指定路径下的文件永久删除。

>>> import os
>>> os.unlink('C:\\Users\\Caizi\\python.py')



永久删除文件夹


    使用 os.rmdir(path) 可以将指定路径下的文件夹永久删除。

    注意:使用此方法删除的文件夹必须为空文件夹。

>>> import os
>>> os.rmdir('D:\\python')



永久删除文件夹及其

包含的文件和文件夹


    使用 shutil.rmtree(path) 可以将指定路径下的文件夹及其包含的文件和文件夹永久删除。

>>> import shutil
>>> shutil.rmtree('D:\\python')



遍历目录树


   使用 os.walk(path) 可以将遍历目录树。下面的例子演示了遍历 D:\python 目录的结果。

目录树结构
D:\

├─ python

├─ day01
│ ├─ day01-1.py
│ └─ day01-2.py
├─ day02
│ ├─ day02-1.py
│ ├─ day02-2.py
│ └─ day02-3.py
└─ python.py

import os


if __name__ == '__main__':
for folder, subfolders, file in os.walk('D:\\python'):
print('Current folder is ' + folder)


for subfolder in subfolders:
print('Subfolder of ' + folder + ' is ' + subfolder)


for filename in file:
print(filename + ' in ' + folder)


print('')

结果输出如下

Current folder is D:\python
Subfolder of D:\python is day01
Subfolder of D:\python is day02
python.py in D:\python

Current folder is D:\python\day01
day01-1.py in D:\python\day01
day01-2.py in D:\python\day01

Current folder is D:\python\day02
day02-1.py in D:\python\day02
day02-2.py in D:\python\day02
day02-3.py in D:\python\day02



举报

相关推荐

0 条评论