在目录中的每个文件夹中创建一个文件

Create a file in every folder in a directory

我有一个包含数百个文件夹和子文件夹以及子文件夹中的子文件夹的目录(在 windows 中)。

我只是想在所有这些文件夹中创建一个带有“测试”一词的小 txt 文件。

我试过类似的方法,但无法正常工作:

for i in root_dir:
    filename = "test.txt"
    with open(filename, "w") as f:
        f.write("Test")

尝试 2

#only makes one file in the root directory - no sub directories though
import os

root_path8 = r'C:\Users\max\Downloads\users_visual\mgr8\mgr7\mgr6'

for i in next(os.walk(root_path8))[1]:
#         print(j)
    print(i)
    root_dir = root_path8
    filename = "test.txt"
    filepath = os.path.join(root_dir, filename)
    if not os.path.exists(root_dir):
        os.makedirs(root_dir)
    f = open(filepath, "a")
    f.write("Test")
    f.close()

使用walk 获取目录中的所有子文件夹和sub-subfolders 等。本次迭代returns3个值(当前文件夹、子文件夹、文件);将第一个值传递给 open,使用 os.path.join 连接文件夹名称和文件名称。例如

import os
folder_iter = os.walk(root_dir)
for current_folder, _, _ in folder_iter:
    filename = "test.txt"
    with open(os.path.join(current_folder, filename), "w") as f:
        f.write("Test")

顺便说一句,如果在每种情况下都是相同的文件,即您不需要单独创建每个文件,可能更有效的方法是先创建一个文件,然后将其复制到目录中的每个文件夹中迭代。