如果文件夹尚未存在,则创建文件夹的工作流程

时间:2015-08-20 16:19:51

标签: python

Python初学者,

this interesting threat中,如果目录不存在,用户会提供一些创建目录的选项。

得票最多的答案显然是最受欢迎的,我猜是因为它最短路:

if not os.path.exists(directory):
    os.makedirs(directory)

第二个答案中包含的功能看起来更强大,在我看来是最好的方法。

import os
import errno

def make_sure_path_exists(path):
    try:
        os.makedirs(path)
    except OSError as exception:
        if exception.errno != errno.EEXIST:
            raise

所以我想知道,人们在他们的剧本中做了什么?键入2行只是为了创建一个文件夹?甚至最糟糕的是,在每个需要创建文件夹的脚本中复制并粘贴函数make_sure_path_exists

我预计像Python这样广泛的编程语言已经有了一个包含类似功能的库。

我所知道的其他两种编程语言,更像是脚本语言,可以轻松完成。

Bash:mkdir -p path

Powershell:New-Item -Force path

请不要将此问题视为对Python的咆哮,因为它不是那样的。

我计划学习Python编写脚本,其中90%的时间我都必须创建文件夹,并且我想知道最有效的方法是什么。

我真的觉得我错过了一些关于Python的东西。

由于

4 个答案:

答案 0 :(得分:3)

你可以使用下面的

# file handler
import os
filename = "./logs/mylog.log"
os.makedirs(os.path.dirname(filename), exist_ok=True)

答案 1 :(得分:2)

制作一个定义了amazon = require('amazon-product-api'); var client = amazon.createClient({ awsId: "*", awsSecret: "*", awsTag: "Tag" }); client.itemLookup({ idType: 'ASIN', itemId: 'B00WA6ZL8S', responseGroup :'Variations' }).then(function(results) { console.log(JSON.stringify(results)); }).catch(function(err) { console.log(err); }); 的模块。在需要时导入它。

答案 2 :(得分:0)

import os

def main():
    dirName = 'C:/SANAL'

    # Create target directory & all intermediate directories if don't exists
    try:
        os.makedirs(dirName)    
        print("Directory " , dirName ,  " Created ")
    except FileExistsError:
        print("Directory " , dirName ,  " already exists")  

if __name__ == '__main__':
    main()

f = open('C:/SANAL/merhabadünya.txt','w')
for i in range (10):
        f.write('MERHABA %d\r\n' % (i+1))

f.close()

f = open('C:/SANAL/merhabadünya.txt','r')
message = f.read()
print(message)

f.close()       

答案 3 :(得分:0)

从不同的答案中获得帮助我制作了这段代码

if not os.path.exists(os.getcwd() + '/' + folderName):
    os.makedirs(os.getcwd() + '/' + folderName, exist_ok=True)