如何在python中当前根路径之上os.mkdir()

问题描述 投票:0回答:4

我正在运行flask项目,并且我正在寻找一种方法来创建目录,该目录位于运行当前App的路径之上。例如:

dirA -->
    dirBinA -->
        peter.py
        griffin.sh
    dirCinA -->
        index.py <--------- this is the flask app that's running
        tom.css
        dick.html
        harry.js
    dirDinA -->  <--------- this directory doesn't exist yet
        anotherDir -->
            turtle.py

我想从在anotherDir中运行的flask应用程序的新目录dirDinA中创建新目录dirCinA/index.py

如果我尝试使用os.mkdir("../dirDinA/anotherDir/"),则烧瓶会显示OSError: [Errno 2] No such file or directory: '../dirDinA/anotherDir'

python path flask mkdir
4个回答
4
投票

您可以使用os.makedirs在一个呼叫中创建多个目录级别:

os.makedirs("../dirDinA/anotherDir")

1
投票

假设您正在目标目录中运行Python脚本,则需要创建一个新目录并将其放入两个步骤中。例如,如果../dirDinA不存在,则

os.mkdir("../dirDinA/a_new_file.py")

产生“没有这样的文件或目录”错误(并误导性地向您显示您要创建的完整路径,而不是不存在的部分导致了问题)。以下

os.mkdir("../dirDinA")
open("../dirDinA/a_new_file.py", "w").write("test")

不会产生错误。


0
投票

为了创建一个新的2级深度目录,您需要在TWO步骤中进行创建。例如,如果../dirDinA尚不存在,则以下命令将失败。

os.mkdir("../dirDinA/anotherDir")

它产生OSError: No such file or directory,误导您,向您显示您要创建的FULL路径,而不是突出显示不存在的ACTUAL部分正在产生错误。

但是,下面的两步方法很顺利,没有任何错误

os.mkdir("../dirDinA")
os.mkdir("../dirDinA/anotherDir")

目录../dirDinA必须存在,然后才能在其中创建anotherDir

感谢进入answer by @JimPivarski


-1
投票

我建议您使用os.popen:

os.popen("cd ..; mkdir dirDinA; mkdir ./dirDinA/anotherDir; --code for creating turtle.py--; chmod +x turtle.py; python turtle.py");

希望对您有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.