给出以下字符串:
dir/dir2/dir3/dir3/file.txt
dir/dir2/dir3/file.txt
example/directory/path/file.txt
我希望在这些目录中创建正确的目录和空白文件。
我导入了os
模块,我看到有一个mkdir
函数,但我不知道如何创建整个路径和空白文件。任何帮助,将不胜感激。谢谢。
答案 0 :(得分:3)
以下是您所有问题的答案(目录创建和空白文件创建)
import os
fileList = ["dir/dir2/dir3/dir3/file.txt",
"dir/dir2/dir3/file.txt",
"example/directory/path/file.txt"]
for file in fileList:
dir = os.path.dirname(file)
# create directory if it does not exist
if not os.path.exists(dir):
os.makedirs(dir)
# Create blank file if it does not exist
with open(file, "w"):
pass
答案 1 :(得分:2)
首先,考虑到尝试在不存在的目录下创建目录,os.mkdir
将引发错误。因此,您需要遍历路径并检查是否已创建或未创建每个子目录(并根据需要使用mkdir
)。或者,您可以使用os.makedirs
为您处理此迭代。
可以使用os.path.split
将完整路径拆分为目录名称和文件名。
示例:
import os
(dirname, filename) = os.path.split('dir/dir2/dir3/dir3/file.txt')
os.makedirs(dirname)
鉴于我们想要创建一组dirs,只需使用for循环来迭代它们。示意性地:
dirlist = ['dir1...', 'dir2...', 'dir3...']
for dir in dirlist:
os.makedirs( ... )