我在Python(WinOS(中创建了一个函数,最终会创建新目录(存储未来工作的地方(。所以在某些时候,我定义了目录,然后在我使用os.mkdir(os.pahth.join('current_dir', 'new_dir1', 'new_dir2'))
.它有效。
问题是同样的功能在Linux操作系统(Ubuntu(上不起作用。在 Linux 中,我只能生成一个目录。即:
os.mkdir(os.path.join('current_dir', 'new_dir1', 'new_dir2'))
返回错误:
(OSError: [Errno 2] 没有这样的文件或目录: '/[current_dir]/new_dir1/new_dir2'(
但:
os.mkdir(os.path.join('current_dir', 'new_dir1'))
- 这有效,返回单个目录
但我需要在 Linux 中创建 2 个目录,而不是一个......
我尝试了几种"简单的组合",例如
new_dirs = os.path.join('new_dir1', 'new_dir2')
os.mkdir(os.path.join('current_dir', new_dirs)
返回相同的错误:
OSError: [errno 2] 没有这样的文件或目录: '/[current_dir]/new_dir1/new_dir2'
我所做的(并在Linux中工作(是下一个:
#Generate the path for the output files
working_path = os.path.join(outfile_path, 'First_Corregistration', 'Split_Area', '')
#Verify is the path exist, if not, create it.
if not os.path.exists(working_path):
os.mkdir(working_path)
有人可以告诉我如何使用 Linux 创建 2 个或更多新目录(一个在另一个内部(。我再次强调更奇怪的一点:我目前的解决方案适用于Windows,但不适用于Linux。
而不是os.mkdir
使用os.makedirs
,应该可以工作。 简单的例子:
os.makedirs("brand/new/directory")
应创建目录:brand
、new
和directory
从 https://docs.python.org/3/library/os.html#os.mkdirs :
递归目录创建函数。与 mkdir(( 类似,但使所有中级目录都需要包含叶目录。