Я новичок в Python и пишу скрипт командной строки, который читает и записывает простые данные в файл JSON.
Есть ли лучший способ реализовать файл JSON для ввода / вывода данных? Интересно, что считается лучшей практикой в этом случае?
wt.py (скрипт)
## imports...
XDG_DATA_HOME = os.environ.get(
'XDG_DATA_HOME',
os.path.join(os.path.expanduser('~'), '.local/share')
)
DATA_DIR = os.path.join(XDG_DATA_HOME, 'wt')
DATA_FILENAME = 'data.json'
DATA_FILE = os.path.join(DATA_DIR, DATA_FILENAME)
if not os.path.exists(DATA_DIR):
os.makedirs(DATA_DIR)
if not os.path.exists(DATA_FILE):
with open(DATA_FILE, 'w') as jfile:
json.dump([], jfile)
## Functions below...
test_wt.py (я реализовал временный файл с временным файлом, как предложено olinox14 в разделе комментариев.)
import unittest
from tempfile import NamedTemporaryFile
# more imports...
from . import wt
class WhatTimeTest(unittest.TestCase):
def setUp(self):
# Create empty json file for each test
temp = NamedTemporaryFile(mode='w+t', delete=False)
with temp as jfile:
json.dump([], jfile)
wt.DATA_FILE = temp.name
def tearDown(self):
os.remove(wt.DATA_FILE)
## tests below...
Заранее спасибо!