0

我正在运行一个烧瓶项目,我正在寻找一种方法来创建一个高于当前应用程序运行路径的目录。例如:

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新目录中创建一个新目录dirDinAdirCinA/index.py

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

4

4 回答 4

4

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

os.makedirs("../dirDinA/anotherDir")
于 2014-02-18T22:06:57.513 回答
1

假设您在预期目录中运行 Python 脚本,您需要创建一个新目录并分两步将内容放入其中。例如,如果../dirDinA不存在,那么

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

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

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

不会产生错误。

于 2013-06-01T02:23:41.417 回答
0

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

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

它会产生OSError: No such file or directory误导性地向您显示您尝试创建的完整路径,而不是突出显示不存在导致错误的ACTUAL部分。

但是,以下两步方法运行良好,没有任何错误

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

目录../dirDinA需要存在才能anotherDir在其中创建

感谢@JimPivarski 的回答

于 2013-06-05T08:49:23.730 回答
-1

我建议你使用 os.popen:

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

希望对你有帮助。

于 2013-06-02T04:39:08.370 回答