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)
|
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)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user