当前位置:嗨网首页>书籍在线阅读

03-复制文件和文件夹

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

10.1.1 复制文件和文件夹

shutil 模块提供了一些函数,用于复制文件和整个文件夹。

调用 shutil.copy(source, destination) ,将路径 source 处的文件复制到路径 destination 处的文件夹( sourcedestination 都是字符串)。如果 destination 是一个文件名,那么它将作为被复制文件的新名字。该函数返回一个字符串,表示被复制文件的路径。

在交互式环境中输入以下代码,看看 shutil.copy() 的效果:

  >>> import shutil, os
  >>> from pathlib import Path
  >>> p = Path.home()
❶ >>> shutil.copy(p/'spam.txt', p / 'some_folder')
  'C:\\Users\\Al\\some_folder\\spam.txt'
❷ >>> shutil.copy(p / 'eggs.txt', p / 'some_folder/eggs2.txt')
  WindowsPath('C:/Users/Al/some_folder/eggs2.txt')

第一个 shutil.copy() 方法将文件C:\Users\Al\spam.txt复制到文件夹C:\Users\Al\some_ folder。返回值是刚刚被复制的文件的路径。请注意,因为只是指定了一个文件夹作为目的地❶,所以原来的文件名spam.txt就被用作新复制的文件名。第二个 shutil.copy() 方法❷也将文件C:\Users\Al\eggs.txt复制到文件夹C:\Users\Al\some_folder,但为新文件提供了一个名字eggs2.txt。

shutil.copy() 将复制一个文件, shutil.copytree() 将复制整个文件夹以及它包含的文件夹和文件。调用 shutil.copytree(source, destination) ,将路径 source 处的文件夹(包括它的所有文件和子文件夹)复制到路径 destination 处的文件夹。 sourcedestination 参数都是字符串。该函数返回一个字符串,该字符串是新复制的文件夹的路径。

在交互式环境中输入以下代码:

>>> import shutil, os
>>> from pathlib import Path
>>> p = Path.home()
>>> shutil.copytree(p / 'spam', p / 'spam_backup')
WindowsPath('C:/Users/Al/spam_backup')

调用 shutil.copytree() 创建了一个名为spam_backup的新文件夹,其中的内容与原来的bacon文件夹一样。现在你已经备份了非常宝贵的“spam”。