欢迎访问宙启技术站
智能推送

使用pathlib模块在Python中复制和移动文件和文件夹的方法

发布时间:2024-01-02 06:52:01

使用pathlib模块可以方便地复制和移动文件和文件夹。pathlib模块提供了Path类来处理文件和文件夹的路径。我们可以使用Path类的方法来复制和移动文件和文件夹。

为了演示如何使用pathlib模块复制和移动文件和文件夹,我们首先创建一个示例文件夹,其中包含一些示例文件和文件夹。

from pathlib import Path

# 创建示例文件夹和文件
Path('my_folder').mkdir(exist_ok=True)
Path('my_folder/file1.txt').write_text('Hello, World!')
Path('my_folder/file2.txt').write_text('This is a text file.')
Path('my_folder/sub_folder').mkdir(exist_ok=True)
Path('my_folder/sub_folder/file3.txt').write_text('Another text file.')

以上代码创建了一个名为my_folder的文件夹,并在其中创建了file1.txtfile2.txtsub_folder文件夹,以及sub_folder文件夹中的file3.txt文件。

接下来,我们将演示如何使用pathlib模块复制文件和文件夹。

#### 复制文件

要复制文件,我们可以使用Path类的copy()方法。使用copy()方法时,我们需要提供目标文件的路径。

source_file = Path('my_folder/file1.txt')
destination_file = Path('my_folder/copied_file.txt')

source_file.copy(destination_file)

在上面的代码中,我们首先创建一个源文件的Path对象source_file,然后创建一个目标文件的Path对象destination_file。然后,我们调用源文件的copy()方法,并传递目标文件的路径作为参数。

执行上述代码后,将在my_folder文件夹中创建一个名为copied_file.txt的副本文件。

#### 复制文件夹

要复制文件夹,我们可以使用Path类的rglob()方法和copy()方法。rglob()方法用于在文件夹及其子文件夹中查找文件,copy()方法用于复制文件。

source_folder = Path('my_folder')
destination_folder = Path('copied_folder')

for file in source_folder.rglob('*'):
    relative_path = file.relative_to(source_folder)
    destination = destination_folder / relative_path
    if file.is_file():
        file.copy(destination)
    else:
        destination.mkdir(exist_ok=True)

在上面的代码中,我们首先创建一个源文件夹的Path对象source_folder,然后创建一个目标文件夹的Path对象destination_folder。然后,我们使用rglob()方法遍历源文件夹及其子文件夹中的所有文件和文件夹。

对于每个文件或文件夹,我们通过计算相对路径来确定目标路径。如果当前项是文件,则将其复制到目标路径。如果当前项是文件夹,则在目标路径中创建相应的文件夹。

执行上述代码后,将在当前目录中创建一个名为copied_folder的副本文件夹,并在其中复制了my_folder文件夹及其内容。

要移动文件和文件夹,我们可以使用Path类的rename()方法。

#### 移动文件

要移动文件,我们可以使用rename()方法。使用rename()方法时,我们需要提供目标文件的路径。

source_file = Path('my_folder/file2.txt')
destination_file = Path('my_folder/moved_file.txt')

source_file.rename(destination_file)

在上面的代码中,我们首先创建源文件的Path对象source_file,然后创建目标文件的Path对象destination_file。然后,我们调用源文件的rename()方法,并传递目标文件的路径作为参数。

执行上述代码后,将把file2.txt文件移动到my_folder文件夹中,并将其重命名为moved_file.txt

#### 移动文件夹

要移动文件夹,我们可以使用rename()方法。使用rename()方法时,我们需要提供目标文件夹的路径。

source_folder = Path('my_folder/sub_folder')
destination_folder = Path('my_folder/moved_folder')

source_folder.rename(destination_folder)

在上面的代码中,我们首先创建源文件夹的Path对象source_folder,然后创建目标文件夹的Path对象destination_folder。然后,我们调用源文件夹的rename()方法,并传递目标文件夹的路径作为参数。

执行上述代码后,将把sub_folder文件夹移动到my_folder文件夹中,并将其重命名为moved_folder

这样,我们就学会了使用pathlib模块在Python中复制和移动文件和文件夹的方法,并给出了相应的示例代码。使用pathlib模块,我们可以方便地处理文件和文件夹的路径,并执行复制和移动操作。