分享

使用 Python 组织文件

 菜籽爱编程 2022-04-27

    在 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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多