在Python中从字符串创建路径和文件名
给定以下字符串:
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