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

How to to check if a folder doesn't exist to create a file inside of it?

我正在尝试检查文件夹是否存在,如果系统不创建它,则会在该文件夹中写入一个 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")

代码问题:

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

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

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

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")

希望对您有所帮助