45 lines
1.4 KiB
Python
45 lines
1.4 KiB
Python
from Library.Json import json_decode
|
|
from Library.Yaml import yaml_decode
|
|
import csv
|
|
import os
|
|
|
|
|
|
def _home_of_data():
|
|
home = '%s/%s' % (os.path.dirname(os.path.dirname(__file__)), 'Data')
|
|
if os.path.exists(home):
|
|
return home
|
|
else:
|
|
raise FileNotFoundError('Directory "%s" does not exist.' % home)
|
|
|
|
def _checking_data_filename(_s: str):
|
|
if _s.replace("\\", '/').find('/') != -1:
|
|
raise NameError('The data filename "%s" is illegal in data directory.' % _s)
|
|
|
|
def loadDataFromJson(filename: str):
|
|
_checking_data_filename(filename)
|
|
return json_decode(open('%s/%s' % (_home_of_data(), filename), encoding='utf-8').read())
|
|
|
|
def loadDataFromYaml(filename: str):
|
|
_checking_data_filename(filename)
|
|
return yaml_decode(open('%s/%s' % (_home_of_data(), filename), encoding='utf-8').read())
|
|
|
|
def loadCsv(filename: str):
|
|
_checking_data_filename(filename)
|
|
file = '%s/%s' % (_home_of_data(), filename)
|
|
try:
|
|
open(file).read(4096)
|
|
encoding = None
|
|
except UnicodeDecodeError:
|
|
encoding = 'utf-8'
|
|
return [row for row in csv.reader(open(file, encoding=encoding))]
|
|
|
|
def loadTxt(filename: str):
|
|
_checking_data_filename(filename)
|
|
file = '%s/%s' % (_home_of_data(), filename)
|
|
try:
|
|
open(file).read(4096)
|
|
encoding = None
|
|
except UnicodeDecodeError:
|
|
encoding = 'utf-8'
|
|
return [row.rstrip("\n") for row in open(file, encoding=encoding).readlines()]
|