我目前正在制作一个需要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")
答案 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()