Python:检查JSON文件并根据需要创建一个

时间:2015-10-07 11:31:09

标签: python

我目前正在制作一个需要JSON数据库文件的程序。我希望程序检查文件,如果它在那里它是完美的,运行程序的其余部分,但如果它不存在,在文件中创建带有{}的'Accounts.json',而不是运行该计划。

我该怎么做?什么是最有效的方式。

注意:我用它来检查,但是如何创建文件:

def startupCheck():
    if os.path.isfile(PATH) and os.access(PATH, os.R_OK):
        # checks if file exists
        print ("File exists and is readable")
    else:
        print ("Either file is missing or is not readable")

4 个答案:

答案 0 :(得分:3)

我相信你可以做到:

import io
import json
import os

def startupCheck():
    if os.path.isfile(PATH) and os.access(PATH, os.R_OK):
        # checks if file exists
        print ("File exists and is readable")
    else:
        print ("Either file is missing or is not readable, creating file...")
        with io.open(os.path.join(PATH, 'Accounts.json'), 'w') as db_file:
            db_file.write(json.dumps({}))

答案 1 :(得分:3)

如何将打开的文件包装在 try/except 中?我不是专业的 Python 编码员,所以如果这不是一种犹太洁食方法,请随意权衡。

try:
    with open('Accounts.json', 'r') as fp:
        accounts = json.load(fp)

except IOError:
    print('File not found, will create a new one.')
    accounts = {}

# do stuff with your data...
with open('Accounts.json', 'w') as fp:
    json.dump(accounts, fp, indent=4)

答案 2 :(得分:1)

这就是我的方法。希望对您有所帮助。 编辑,现在看起来像是代码:D

import json
import os

def where_json(file_name):
    return os.path.exists(file_name)


if where_json('data.json'):
    pass

else:

    data = {  
        'user': input('User input: '),
        'pass': input('Pass input: ')
    }


    with open('data.json', 'w') as outfile:  
        json.dump(data, outfile)

答案 3 :(得分:-3)

w+打开并具有写权限。
如果找不到+,则会创建一个新文件。

filename = 'jsonDB.json'

def openFile():
    with open(filename, 'w+') as f:
    f.write('{}')            
    f.close

openFile()