geovisualisierung/projects/project-3/openapi/read_csv.py

58 lines
1.4 KiB
Python
Raw Normal View History

2020-12-03 02:16:59 +01:00
import csv
import os
2020-12-05 00:11:13 +01:00
def read_files(base_dir, max_num=2):
2020-12-03 02:16:59 +01:00
data = []
for file in os.listdir(base_dir):
2020-12-05 00:11:13 +01:00
if max_num == 0:
break
2020-12-03 02:16:59 +01:00
print(f'reading file \'{file}\'')
2020-12-05 00:11:13 +01:00
with open(os.path.join(base_dir, file), 'r', newline='') as input_file:
2020-12-03 02:16:59 +01:00
data.extend(list(csv.DictReader(input_file)))
2020-12-05 00:11:13 +01:00
max_num -= 1
2020-12-03 02:16:59 +01:00
return data
2020-12-05 00:11:13 +01:00
def get_key_counts(data):
all_key_sets = [e.keys() for e in data]
key_counts = {}
for key_set in all_key_sets:
for key in key_set:
try:
key_counts[key] += 1
except KeyError:
key_counts[key] = 1
return key_counts
2020-12-03 02:16:59 +01:00
def main():
2020-12-05 00:11:13 +01:00
data = read_files('data/usage-stats', max_num=10)
2020-12-03 02:16:59 +01:00
print("Sorting")
2020-12-05 00:11:13 +01:00
data = sorted(data, key=lambda entry: int(entry['Rental Id']))
2020-12-03 02:16:59 +01:00
print(f'final length of data {len(data)}')
2020-12-05 00:11:13 +01:00
# counts = get_key_counts(data)
# for count, val in counts.items():
# if val != len(data):
# print(count, val)
# print(counts)
with open('test.csv', 'w', newline='') as out_file:
writer = csv.DictWriter(out_file, data[0].keys(), extrasaction='ignore')
2020-12-03 02:16:59 +01:00
writer.writeheader()
writer.writerows(data)
if __name__ == '__main__':
main()
#
# with open('test.csv') as again_in:
# reader2 = csv.DictReader(again_in)
# data2 = list(reader2)
#
# print(data2[0])
#
# print(f"Is same? {data[0] == data2[0]}")