我想创建一个文本文件(内部包含内容),并在特定驱动器的每个子目录(文件夹)中复制/创建该文件,例如使用Python的D。最好使用预安装的python库,而无需pip安装任何内容。
因此,Python 3脚本从驱动器C运行,创建一个包含文本的文本文件,并将该文本文件粘贴到驱动器D的每个文件夹中一次。我需要在Windows上使用它。
create("file.txt", contents "example text")
copy("file.txt" to "D:\*")
示例输出
Copied file.txt to D:\
Copied file.txt to D:\folder example
Copied file.txt to D:\folder example\subfolder example
Copied file.txt to D:\another folder
答案 0 :(得分:2)
您可以使用os.walk
获取所有目录。例如,尝试
import os
filename = "myfile.txt"
filetext = "mytext"
directories = os.walk("D:")
for directory in directories:
with open(directory[0]+"\\"+filename, "w") as file:
file.write(filetext)
这会将filetext
写入myfile.txt
中每个目录的文件D:
中。
编辑:如果您没有特定目录的权限,则可能要为此添加try
语句
答案 1 :(得分:0)
这称为递归目录遍历
https://stackoverflow.com/a/16974952/4088577
希望此提示对您有帮助。
这是您感兴趣的行。
print((len(path)-1)*'---',os.path.basename(root))
如果您想了解更多信息,可以阅读
https://www.bogotobogo.com/python/python_traversing_directory_tree_recursively_os_walk.php
答案 2 :(得分:0)
例如,使用OS lib:
from os import listdir
from os.path import isfile
path = "/some/path"
for f in listdir(path):
if not isfile(path):
filepath = "{0:s}/dummy.txt".format(path)
with open(filepath, 'w') as f:
f.write('Hi there!')
或使用glob:
import glob
path = '/some/path/*/'
paths = glob.glob(path)
filename = "dummy.txt"
for path in paths:
filepath = "{0:s}{1:s}".format(path, filename)
with open(filepath, 'w') as f:
f.write('Hi there!')
请注意!:第二个solluton仅在Linux OS下工作(由于glob)