📅  最后修改于: 2023-12-03 15:40:49.218000             🧑  作者: Mango
在日常开发和生活中,我们经常需要处理大量的文件和文件夹。在这些情况下,我们需要程序来帮助我们完成这些任务。本文将介绍如何使用 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()
函数获取目标文件夹中的所有文件和文件夹,遍历每个项目,并将其添加到 folders
或 files
列表中。最后,我们遍历这两个列表并打印所有文件和文件夹。
有时,我们需要遍历一个目录下的所有子目录。补充上面的代码,以下代码演示了如何遍历子目录。
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 爬取文件夹并进行一些常见的操作,包括获取文件夹列表、遍历子文件夹、读取和修改文件内容等。这些操作将帮助您更轻松地处理文件和文件夹!