在Python中从字符串创建路径和文件名

时间:2011-12-01 16:00:49

标签: python

给出以下字符串:

dir/dir2/dir3/dir3/file.txt
dir/dir2/dir3/file.txt
example/directory/path/file.txt

我希望在这些目录中创建正确的目录和空白文件。

我导入了os模块,我看到有一个mkdir函数,但我不知道如何创建整个路径和空白文件。任何帮助,将不胜感激。谢谢。

2 个答案:

答案 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( ... )