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)
def read_dir(directory, exclude=None):
def read_dir(directory, exclude=None, fullpath=False, extension=True):
"""\
Read all files in directory as list
"""
result = []
for data in os.listdir(directory):
file_name = data.split('.')[0]
for file_name in os.listdir(directory):
if not extension:
file_name = file_name.split('.')[0]
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)
return result
@@ -48,7 +51,7 @@ def print_list(data_list):
Print list
"""
for data in data_list:
print(data.title())
print(data)
def read_file(filename):
@@ -74,7 +77,7 @@ def print_data(data):
pprint(loads(data))
def search_keys(data, keys=None):
def search_keys(data, keys):
"""\
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
return results
results = {}
if keys is not None:
if isinstance(keys, str):
keys = [keys]
for key in keys:
found_values = find_values(key, data)
#print(found_values)
for value in found_values:
print(key + ' = ' + '%s' % value[0] + ' ' + value[1])
results[key] = found_values
return results
#def getLength(element):
# try:
# element.__iter__
# return sum([getLength(i) for i in element])
# except:
# return 1
#print(len(data))
#print(getLength(json.loads(data)))
def print_dict(data_dict, print_keys=True, prespaces=0):
"""\
Search for json keys in string data
"""
for key, values in data_dict.items():
for value in values:
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():
@@ -152,8 +162,13 @@ def main():
print(args)
if args.command == 'list':
data_list = read_dir(absolute_path("data"), "INFO")
print_list(data_list)
file_list = read_dir(absolute_path("data"), "INFO.json", True)
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':
filename = os.path.join('data', args.materialname.lower() + '.json')
@@ -170,7 +185,8 @@ def main():
search_list = [element for element in args.search.split(',')]
if args.debug:
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:
print_data(data)