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

1 投票
2 回答
20976 浏览
提问于 2025-04-17 07:29

给定以下字符串:

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

我想在正确的目录下创建空文件和文件夹。

我导入了 os 模块,看到里面有一个 mkdir 函数,但我不太确定怎么才能创建完整的路径和空文件。希望能得到一些帮助。谢谢。

2 个回答

1

首先,如果你试图在一个不存在的目录下创建子目录,使用 os.mkdir 会报错。因此,你需要逐层检查每个子目录是否已经创建,如果没有,就用 mkdir 来创建它。或者,你可以使用 os.makedirs,这样它会帮你自动处理这些检查和创建。

一个完整的路径可以用 os.path.split 来分开成目录名和文件名。

举个例子:

import os
(dirname, filename) = os.path.split('dir/dir2/dir3/dir3/file.txt')
os.makedirs(dirname)

假设我们有一组想要创建的目录,可以简单地用一个循环来遍历它们。大致上是这样的:

dirlist = ['dir1...', 'dir2...', 'dir3...']
for dir in dirlist:
   os.makedirs( ... )
4

这里是关于你所有问题的答案(创建目录和创建空文件)

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

撰写回答