Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- """
- Beschreibung ...
- """
- import csv
- import sys
- from argparse import ArgumentParser, FileType
- from datetime import datetime as DateTime
- from urllib.request import urlretrieve
- def get_demo_data():
- csv_url = "https://opendata.ecdc.europa.eu/covid19/casedistribution/csv"
- file, http_reply = urlretrieve(csv_url)
- return file
- def constraints(row):
- """
- Filter nach Fälle > 100
- """
- try:
- return int(row[4]) > 100 and row[6].casefold() == "germany"
- except ValueError:
- return False
- def transformer(row):
- """
- Nur Datum, Sterbefälle und Land ausgeben.
- """
- try:
- return [DateTime.strptime(row[0], "%d/%m/%Y").date().isoformat(), row[4], row[6]]
- except ValueError:
- return [row[0], row[4], row[6]]
- def main(input_file, output_file):
- with open(input_file, "rt", encoding="utf8", newline="") as fd_in:
- reader = csv.reader(fd_in)
- with open(output_file, "wt", encoding="utf8", newline="") as fd_out:
- writer = csv.writer(fd_out)
- # den header schreibe ich explizit
- # der transformer selektiert spalten
- writer.writerow(transformer(next(reader)))
- for row in reader:
- if constraints(row):
- row = transformer(row)
- writer.writerow(row)
- def get_args():
- parser = ArgumentParser(__doc__)
- parser.add_argument("input_file", help="CSV Eingabedatei")
- parser.add_argument("output_file", help="CSV Ausgabedatei")
- return parser.parse_args()
- if __name__ == "__main__":
- main(get_demo_data(), "output.csv")
- # args = get_args()
- # try:
- # main(**vars(args))
- # except Exception as e:
- # print(repr(e))
- # sys.exit(1)
Add Comment
Please, Sign In to add comment