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()]