📌  相关文章
📜  爬取文件夹python(1)

📅  最后修改于: 2023-12-03 15:40:49.218000             🧑  作者: Mango

爬取文件夹 Python

在日常开发和生活中,我们经常需要处理大量的文件和文件夹。在这些情况下,我们需要程序来帮助我们完成这些任务。本文将介绍如何使用 Python 爬取文件夹并进行一些常见的操作。

获取文件夹列表

要遍历一个目录下的所有文件和子目录,可以使用 os 模块中的 listdir() 函数。以下代码可以获取一个目录下的所有文件和文件夹列表。

import os

path = '/path/to/folder'
folders = []
files = []

for entry in os.listdir(path):
    full_path = os.path.join(path, entry)
    if os.path.isdir(full_path):
        folders.append(entry)
    elif os.path.isfile(full_path):
        files.append(entry)

print('Folders:')
for folder in folders:
    print(folder)

print('Files:')
for file in files:
    print(file)

在上述示例中,我们定义了一个名为 path 的变量,其值为目标文件夹的路径。然后,我们使用 listdir() 函数获取目标文件夹中的所有文件和文件夹,遍历每个项目,并将其添加到 foldersfiles 列表中。最后,我们遍历这两个列表并打印所有文件和文件夹。

遍历子文件夹

有时,我们需要遍历一个目录下的所有子目录。补充上面的代码,以下代码演示了如何遍历子目录。

import os

path = '/path/to/folder'

def list_files(startpath):
    for root, dirs, files in os.walk(startpath):
        level = root.replace(startpath, '').count(os.sep)
        indent = ' ' * 4 * (level)
        print('{}{}/'.format(indent, os.path.basename(root)))
        sub_indent = ' ' * 4 * (level + 1)
        for f in files:
            print('{}{}'.format(sub_indent, f))

list_files(path)

在上述示例中,我们定义了一个名为 list_files() 的函数,该函数使用 os.walk() 函数来遍历目标文件夹下的所有子文件夹和文件。由于 os.walk() 函数是遍历所有子目录的,因此我们不需要递归调用 listdir() 函数。

获取文件内容

如果我们想要读取一个文件的内容,可以使用 open() 函数。以下代码演示了如何读取一个文本文件的内容。

file_path = '/path/to/file'
with open(file_path, 'r') as f:
    content = f.read()
print(content)

打开文件的方式是在 open() 函数中指定的。在上述示例中,我们将打开方式设置为 'r',即只读模式。您还可以在 open() 函数中使用其他参数,例如指定编码类型或打开文件的方式(例如写入或追加)。

修改文件内容

与读取文件类似,要修改文件的内容,只需打开文件时将模式设置为“写入”('w')或“追加”('a')。以下代码演示了如何将字符串写入一个文本文件。

file_path = '/path/to/file'
with open(file_path, 'w') as f:
    f.write('Hello, World!')

在该示例中,我们打开文件并使用 write() 函数将字符串 'Hello, World!' 写入文件中。此操作将完全替换文件中的任何现有内容。

结论

在本文中,我们介绍了如何使用 Python 爬取文件夹并进行一些常见的操作,包括获取文件夹列表、遍历子文件夹、读取和修改文件内容等。这些操作将帮助您更轻松地处理文件和文件夹!