python遍历根目录下所有文件及子文件夹内的文件
时间: 2023-11-24 14:06:11 浏览: 171
你可以使用Python的`os.walk`函数来遍历根目录下所有文件及子文件夹内的文件。以下是一个示例代码:
```python
import os
root_dir = "/path/to/root/directory"
for root, dirs, files in os.walk(root_dir):
for file in files:
file_path = os.path.join(root, file)
print(file_path)
```
上述代码中,`os.walk`函数返回一个三元组`(root, dirs, files)`,其中`root`是当前遍历的目录路径,`dirs`是当前目录下的子文件夹列表,`files`是当前目录下的文件列表。我们可以通过循环遍历每个子目录和文件,进一步遍历根目录下的所有文件。`os.path.join`函数可以将目录路径和文件名拼接成完整的文件路径。
相关问题
帮我完成一份代码,python。流程:遍历根目录下的message子文件夹中的Name.txt的行,打开“根目录+行”的文件,提取找含有 661 的行
当遍历根目录下的message子文件夹中的Name.txt的行时,可以使用`os`模块来完成文件和目录操作。以下是一个完成该流程的Python代码示例:
```python
import os
root_dir = "根目录的路径" # 根目录路径
# 遍历根目录下的message子文件夹
for foldername in os.listdir(root_dir):
folder_path = os.path.join(root_dir, foldername)
if os.path.isdir(folder_path):
# Name.txt文件路径
name_file = os.path.join(folder_path, "Name.txt")
# 打开Name.txt文件
with open(name_file, 'r') as file:
# 逐行读取Name.txt的内容
for line in file:
line = line.strip() # 去除行末尾的换行符等空白字符
file_path = os.path.join(root_dir, line)
# 打开根目录+行的文件
with open(file_path, 'r') as f:
# 逐行查找含有661的行
for content in f:
if '661' in content:
print(content)
```
请将代码中的"根目录的路径"替换为你实际的根目录路径。上述代码会遍历根目录下的message子文件夹,打开每个子文件夹中的Name.txt文件,逐行读取其内容并与根目录拼接形成文件路径。然后,会打开该文件,并逐行查找含有"661"的行,将其输出。
请根据你的实际需求对代码进行适当的修改。
python遍历文件夹里所有文件
在Python中,你可以使用os模块的walk()函数来遍历指定目录及其下的所有子目录和文件。以下是一个基本的例子:
```python
import os
def list_files_in_dir(root_dir):
for root, dirs, files in os.walk(root_dir):
for file in files:
# 输出文件路径(相对于root_dir)
file_path = os.path.join(root, file)
print(file_path)
# 要遍历的根目录
directory_to_walk = '/path/to/your/directory'
list_files_in_dir(directory_to_walk)
```
在这个代码片段中,`os.walk()`生成一个三元组`(dirpath, dirnames, filenames)`,其中`dirpath`是当前目录的路径,`dirnames`是该目录下所有的子目录名列表,而`filenames`则是该目录下的文件名列表。通过循环,我们可以逐个访问这些文件。
阅读全文