list not files but names inside files

This commit is contained in:
2019-02-10 00:02:10 +01:00
parent a882e8b6e7
commit f4c582d7d5

View File

@@ -31,14 +31,17 @@ def absolute_path(filename):
return os.path.join(os.path.abspath(os.path.dirname(__file__)), filename) return os.path.join(os.path.abspath(os.path.dirname(__file__)), filename)
def read_dir(directory, exclude=None): def read_dir(directory, exclude=None, fullpath=False, extension=True):
"""\ """\
Read all files in directory as list Read all files in directory as list
""" """
result = [] result = []
for data in os.listdir(directory): for file_name in os.listdir(directory):
file_name = data.split('.')[0] if not extension:
file_name = file_name.split('.')[0]
if exclude is not None and file_name not in exclude: if exclude is not None and file_name not in exclude:
if fullpath:
file_name = absolute_path(os.path.join(directory, file_name))
result.append(file_name) result.append(file_name)
return result return result
@@ -48,7 +51,7 @@ def print_list(data_list):
Print list Print list
""" """
for data in data_list: for data in data_list:
print(data.title()) print(data)
def read_file(filename): def read_file(filename):
@@ -74,7 +77,7 @@ def print_data(data):
pprint(loads(data)) pprint(loads(data))
def search_keys(data, keys=None): def search_keys(data, keys):
"""\ """\
Search for json keys in string data Search for json keys in string data
""" """
@@ -92,21 +95,28 @@ def search_keys(data, keys=None):
loads(json_repr, object_hook=_decode_dict) # return value ignored loads(json_repr, object_hook=_decode_dict) # return value ignored
return results return results
results = {}
if keys is not None: if keys is not None:
if isinstance(keys, str):
keys = [keys]
for key in keys: for key in keys:
found_values = find_values(key, data) found_values = find_values(key, data)
#print(found_values) results[key] = found_values
for value in found_values: return results
print(key + ' = ' + '%s' % value[0] + ' ' + value[1])
#def getLength(element):
# try: def print_dict(data_dict, print_keys=True, prespaces=0):
# element.__iter__ """\
# return sum([getLength(i) for i in element]) Search for json keys in string data
# except: """
# return 1 for key, values in data_dict.items():
#print(len(data)) for value in values:
#print(getLength(json.loads(data))) if print_keys:
print(key + ' = ', end='')
if isinstance(value, list) and len(value) == 2:
print(prespaces*' ' + '%s' % value[0] + ' ' + value[1])
else:
print(prespaces*' ' + '%s' % value)
def main(): def main():
@@ -152,8 +162,13 @@ def main():
print(args) print(args)
if args.command == 'list': if args.command == 'list':
data_list = read_dir(absolute_path("data"), "INFO") file_list = read_dir(absolute_path("data"), "INFO.json", True)
print_list(data_list) for filename in file_list:
file, _ = os.path.splitext(os.path.basename(filename))
print(file.title())
data = read_file(filename)
data_dict = search_keys(data, 'Name')
print_dict(data_dict, False, 2)
elif args.command == 'get': elif args.command == 'get':
filename = os.path.join('data', args.materialname.lower() + '.json') filename = os.path.join('data', args.materialname.lower() + '.json')
@@ -170,7 +185,8 @@ def main():
search_list = [element for element in args.search.split(',')] search_list = [element for element in args.search.split(',')]
if args.debug: if args.debug:
print("search_list: " + str(search_list)) print("search_list: " + str(search_list))
search_keys(data, keys=search_list) data_dict = search_keys(data, keys=search_list)
print_dict(data_dict)
else: else:
print_data(data) print_data(data)