在计算机编程中,文件和文件夹的操作是常见的任务之一。Python作为一种强大的编程语言,提供了丰富的库和函数来操作文件和文件夹。本文将介绍如何使用Python操作文件夹及文件,包括创建、删除、重命名、遍历、复制、移动等操作。

一、创建文件夹

要创建一个文件夹,可以使用Python内置的os模块中的mkdir()函数。该函数接受一个路径参数,表示要创建的文件夹的路径。如果指定的路径不存在,则创建一个新的文件夹;如果已经存在,则会抛出异常。以下是一个示例代码:

import os

# 创建名为"example_folder"的文件夹
folder_path = "example_folder"
if not os.path.exists(folder_path):
    os.mkdir(folder_path)

二、删除文件夹

要删除一个文件夹及其所有内容,可以使用Python内置的shutil模块中的rmtree()函数。该函数接受一个路径参数,表示要删除的文件夹的路径。如果指定的路径不存在,则会抛出异常。以下是一个示例代码:

import shutil

# 删除名为"example_folder"的文件夹及其所有内容
folder_path = "example_folder"
if os.path.exists(folder_path):
    shutil.rmtree(folder_path)

三、重命名文件夹

要重命名一个文件夹,可以使用Python内置的os模块中的rename()函数。该函数接受两个参数,第一个参数是要重命名的文件夹的旧路径,第二个参数是新路径。以下是一个示例代码:

import os

# 将名为"old_folder"的文件夹重命名为"new_folder"
old_folder_path = "old_folder"
new_folder_path = "new_folder"
os.rename(old_folder_path, new_folder_path)

四、遍历文件夹及文件

要遍历一个文件夹及其所有子文件夹和文件,可以使用Python内置的os模块中的walk()函数。该函数返回一个生成器对象,可以依次获取每个子文件夹和文件的路径。以下是一个示例代码:

import os

# 遍历名为"example_folder"的文件夹及其所有子文件夹和文件
folder_path = "example_folder"
for root, dirs, files in os.walk(folder_path):
    for name in dirs:
        print("Directory:", os.path.join(root, name))
    for name in files:
        print("File:", os.path.join(root, name))

五、复制文件夹及文件

要复制一个文件夹及其所有内容到另一个位置,可以使用Python内置的shutil模块中的copytree()函数。该函数接受两个参数,第一个参数是要复制的文件夹的路径,第二个参数是目标位置的路径。以下是一个示例代码:

import shutil
import os

# 将名为"example_folder"的文件夹及其所有内容复制到"backup_folder"中
source_folder_path = "example_folder"
destination_folder_path = "backup_folder"
if not os.path.exists(destination_folder_path):
    os.makedirs(destination_folder_path)
shutil.copytree(source_folder_path, destination_folder_path)

六、移动文件夹及文件

要将一个文件夹及其所有内容移动到另一个位置,可以使用Python内置的shutil模块中的move()函数。该函数接受两个参数,第一个参数是要移动的文件夹的路径,第二个参数是目标位置的路径。以下是一个示例代码:

import shutil
import os

# 将名为"example_folder"的文件夹及其所有内容移动到名为"new_location"的位置
source_folder_path = "example_folder"
destination_folder_path = "new_location"
shutil.move(source_folder_path, destination_folder_path)

七、获取文件夹及文件信息

要获取文件夹或文件的信息,可以使用Python内置的os模块中的stat()函数。该函数接受一个路径参数,返回一个元组,包含文件或文件夹的属性信息。以下是一个示例代码:

import os

# 获取名为"example.txt"的文件信息
file_path = "example.txt"
file_info = os.stat(file_path)
print("File size:", file_info.st_size)
print("Last modified time:", file_info.st_mtime)
print("Permissions:", oct(file_info.st_mode)[-3:])

八、修改文件夹及文件权限

要修改文件夹或文件的权限,可以使用Python内置的os模块中的chmod()函数。该函数接受两个参数,第一个参数是要修改权限的文件或文件夹的路径,第二个参数是权限值。以下是一个示例代码:

import os

# 修改名为"example.txt"的文件权限为只读
file_path = "example.txt"
os.chmod(file_path, 0o444)

九、更改文件夹及文件的所有者和所属组

要更改文件夹或文件的所有者和所属组,可以使用Python内置的os模块中的chown()和chgrp()函数。这两个函数分别接受三个参数,第一个参数是要更改所有者或所属组的文件或文件夹的路径,第二个参数是所有者的用户ID,第三个参数是所属组的组ID。以下是一个示例代码:

import os
import pwd
import grp

# 将名为"example.txt"的文件的所有者更改为用户"user1",所属组更改为组"group1"
file_path = "example.txt"
user_id = pwd.getpwnam("user1").pw_uid
group_id = grp.getgrnam("group1").gr_gid
os.chown(file_path, user_id, group_id)

十、压缩和解压缩文件夹及文件

要压缩和解压缩文件夹或文件,可以使用Python内置的zipfile模块。该模块提供了丰富的功能,可以创建、读取、写入、删除ZIP文件等。以下是一个示例代码:

import zipfile
import os

# 压缩名为"example_folder"的文件夹及其所有内容到名为"example.zip"的ZIP文件中
folder_path = "example_folder"
zip_file_path = "example.zip"
with zipfile.ZipFile(zip_file_path, 'w', zipfile.ZIP_DEFLATED) as zipf:
    for root, dirs, files in os.walk(folder_path):
        for file in files:
            file_path = os.path.join(root, file)
            zipf.write(file_path, os.path.relpath(file_path, folder_path))

以上是Python操作文件夹及文件的一些常用方法,还有很多其他功能等待你去探索。