您的位置:

Python中判断文件夹的方法

一、检查文件夹是否存在

在Python中检查文件夹是否存在的最简单方法是使用 os 模块中的 isdir() 函数。isdir() 函数接受一个字符串参数,表示要检查的文件夹的路径,并返回一个布尔值,指示该文件夹是否存在。

import os

folder_path = "/path/to/folder"

if os.path.isdir(folder_path):
    print("Folder exists!")
else:
    print("Folder does not exist.")

二、遍历文件夹中的文件

使用 os 模块中的 listdir() 函数可以列出文件夹中的所有文件和子文件夹。这个函数将返回一个字符串列表,每个字符串表示文件夹中的一个文件或子文件夹。我们可以使用 os.path.join() 函数来连接文件夹路径和文件名,以创建文件的完整路径。

import os

folder_path = "/path/to/folder"

# 列出文件夹中所有的文件和子文件夹
files = os.listdir(folder_path)

for file_name in files:
    full_path = os.path.join(folder_path, file_name)
    if os.path.isdir(full_path):
        print("{} is a folder.".format(file_name))
    else:
        print("{} is a file.".format(file_name))

三、递归遍历文件夹中的文件

使用 os 模块中的 walk() 函数可以递归遍历文件夹中的所有文件和子文件夹。这个函数将返回一个三元素的元组,分别表示当前文件夹的路径、当前文件夹中的所有子文件夹的名称、当前文件夹中的所有文件的名称。

import os

folder_path = "/path/to/folder"

for root, dirs, files in os.walk(folder_path):
    print("Current folder: {}".format(root))
    for file_name in files:
        full_path = os.path.join(root, file_name)
        if os.path.isdir(full_path):
            print("{} is a folder.".format(file_name))
        else:
            print("{} is a file.".format(file_name))

四、创建文件夹

使用 os 模块中的 mkdir() 函数可以创建新的文件夹。该函数接受一个字符串参数,表示要创建的文件夹的路径。我们可以使用 os.path.exists() 函数来检查文件夹是否已存在。

import os

new_folder_path = "/path/to/new/folder"

if not os.path.exists(new_folder_path):
    os.mkdir(new_folder_path)
    print("Folder created successfully!")
else:
    print("Folder already exists.")

五、删除文件夹

使用 os 模块中的 rmdir() 函数可以删除一个空文件夹。如果要删除非空文件夹,则需要使用 shutil 模块中的 rmtree() 函数。

import os
import shutil

folder_path = "/path/to/folder"

if os.path.isdir(folder_path):
    # 删除空文件夹
    os.rmdir(folder_path)
    print("Folder deleted successfully!")

    # 删除非空文件夹
    shutil.rmtree(folder_path)
    print("Folder deleted successfully!")
else:
    print("Folder does not exist.")

六、判断文件夹中是否有指定类型的文件

使用 os 模块中的 listdir() 函数可以列出文件夹中的所有文件和子文件夹。我们可以使用 endswith() 函数来检查文件的后缀名是否匹配。如果要忽略文件名的大小写,可以使用 lower() 函数。

import os

folder_path = "/path/to/folder"
extension = ".txt"

for file_name in os.listdir(folder_path):
    if file_name.lower().endswith(extension):
        print("{} is a {} file.".format(file_name, extension))