如何检查文件夹是否不存在以在其中创建文件?

时间:2018-04-09 20:04:16

标签: python json list directory writefile

我正在尝试检查文件夹是否存在,如果系统没有创建它,则会在此文件夹中写入JSON文件。

问题是系统会创建一个空文件夹并显示以下错误:

None

 the selected file is not readble because :  [WinError 183] Cannot
 create a file when that file already exists: './search_result'
 'NoneType' object is not iterable

None的结果是:print(searchResultFoder)

代码是:

if not(os.path.exists("./search_result")):                                      
                    today = time.strftime("%Y%m%d__%H-%M")
                    jsonFileName = "{}_searchResult.json".format(today)
                    fpJ = os.path.join(os.mkdir("./search_result"),jsonFileName)
                    print(fpJ)
with open(fpJ,"a") as jsf:
                    jsf.write(jsondata)
                    print("finish writing")

1 个答案:

答案 0 :(得分:0)

代码问题:

  • 案例目录不存在: os.mkdir("./search_result")fpJ = os.path.join(os.mkdir("./search_result"),jsonFileName)中返回 没有你认为它将返回你创建的路径 夹。这是不正确的。

  • 案例目录存在:如果条件if not(os.path.exists("./search_result")):
    是错误的json文件名将是未定义的并抛出和异常

。 正在执行以下操作的完整代码示例。 1)检查文件夹是否存在,如果没有创建它 2)在这个创建的文件夹中写入JSON FILE。

import json
import os
import time

jsondata = json.dumps({"somedata":"Something"})
folderToCreate = "search_result"
today = time.strftime("%Y%m%d__%H-%M")
jsonFileName = "{}_searchResult.json".format(today)

if not(os.path.exists(os.getcwd()+os.sep+folderToCreate)):
                    os.mkdir("./search_result")

fpJ = os.path.join(os.getcwd()+os.sep+folderToCreate,jsonFileName)
print(fpJ)

with open(fpJ,"a") as jsf:
                    jsf.write(jsondata)
                    print("finish writing")

希望这有帮助