list not files but names inside files
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user