Einlesesen der CSV-Datei mit Modul CSV
This commit is contained in:
		
							parent
							
								
									1cfcc38f08
								
							
						
					
					
						commit
						ce2889991a
					
				| @ -10,13 +10,14 @@ Um die Daten an Telegram zu senden, musst du dir ein Skript/Programm schreiben, | |||||||
| von Telegram verwendet und Daten an dich oder deine Gruppe senden kann! | von Telegram verwendet und Daten an dich oder deine Gruppe senden kann! | ||||||
| 
 | 
 | ||||||
| Beispiel für eine Konfigurationsdatei: | Beispiel für eine Konfigurationsdatei: | ||||||
| tgReceiver: <hier die ID der Gruppe/ des Teilnhemers eintragen> | tgReceiver: <hier die ID der Gruppe/ des Teilnehmers eintragen> | ||||||
| kommune: 2601 | kommune: 2601 | ||||||
| strasse: 2146 | strasse: 2146 | ||||||
| pathBot: '~/bin/YMBot' | pathBot: '~/bin/YMBot' | ||||||
| tgBotOwner: <hier DEINE Telegram-ID eintragen> | tgBotOwner: <hier DEINE Telegram-ID eintragen> | ||||||
| ''' | ''' | ||||||
| 
 | 
 | ||||||
|  | import csv | ||||||
| import re | import re | ||||||
| import requests | import requests | ||||||
| import httplib2 | import httplib2 | ||||||
| @ -28,7 +29,7 @@ from pathlib import Path | |||||||
| 
 | 
 | ||||||
| # Funktionen | # Funktionen | ||||||
| def get_index_positions(list_of_elems, element): | def get_index_positions(list_of_elems, element): | ||||||
|     ''' Returns the indexes of all occurrences of give element in |     ''' Returns the indexes of all occurrences of given element in | ||||||
|     the list- listOfElements ''' |     the list- listOfElements ''' | ||||||
|     index_pos_list = [] |     index_pos_list = [] | ||||||
|     for i in range(len(list_of_elems)): |     for i in range(len(list_of_elems)): | ||||||
| @ -53,7 +54,7 @@ def init(key, modus, host, headers): | |||||||
|     url = f'https://{host}/?key={key}&modus={modus}&waction=init' |     url = f'https://{host}/?key={key}&modus={modus}&waction=init' | ||||||
|     http = httplib2.Http() |     http = httplib2.Http() | ||||||
|     (resp, content) = http.request(url, "POST", headers = headers, body = urllib.parse.urlencode(postdata)) |     (resp, content) = http.request(url, "POST", headers = headers, body = urllib.parse.urlencode(postdata)) | ||||||
|     # print(content) | 
 | ||||||
|     result = re.findall(r"<input .*?name=.*? value=.*?/>", str(content)) |     result = re.findall(r"<input .*?name=.*? value=.*?/>", str(content)) | ||||||
| 
 | 
 | ||||||
|     datum = result[1].split(' ') |     datum = result[1].split(' ') | ||||||
| @ -74,9 +75,17 @@ def read_file(jahr): | |||||||
| 	 | 	 | ||||||
| 	antwort_liste = None | 	antwort_liste = None | ||||||
| 	try: | 	try: | ||||||
| 		f = open(f'muell{jahr}.csv', 'rb') | 		with open(f'muell{jahr}.csv', 'r', encoding="latin1") as f: | ||||||
| 		antwort = str(f.read()) | 			csv_reader = csv.reader(f, delimiter=';') | ||||||
| 		antwort_liste = antwort[antwort.find('Biom'):].strip("'").replace('\\n', '\n').split('\n') | 			lines = 0 | ||||||
|  | 			antwort_liste = [] | ||||||
|  | 			for row in csv_reader: | ||||||
|  | 				if lines == 0: | ||||||
|  | 					# print(f'Column names are {", ".join(row)}') | ||||||
|  | 					lines += 1 | ||||||
|  | 				else: | ||||||
|  | 					if isinstance(row, list): | ||||||
|  | 						antwort_liste.extend(row) | ||||||
| 	except FileNotFoundError: | 	except FileNotFoundError: | ||||||
| 		pass | 		pass | ||||||
| 
 | 
 | ||||||
| @ -119,8 +128,9 @@ muell_arten = [ | |||||||
|     'Schadstoffmobil', |     'Schadstoffmobil', | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
| # __main__ | if __name__ == '__main__': | ||||||
| 	antwort_liste = read_file(current_year) | 	antwort_liste = read_file(current_year) | ||||||
|  | 
 | ||||||
| 	if antwort_liste == None: | 	if antwort_liste == None: | ||||||
| 		# Keine vernünftigen Daten, ergo mal gucken, was die Webseite ergibt | 		# Keine vernünftigen Daten, ergo mal gucken, was die Webseite ergibt | ||||||
| 		config = readConfig() | 		config = readConfig() | ||||||
| @ -138,12 +148,12 @@ if antwort_liste == None: | |||||||
| 		f = open(f'muell{current_year}.csv', 'wb') | 		f = open(f'muell{current_year}.csv', 'wb') | ||||||
| 		f.write(content) | 		f.write(content) | ||||||
| 		f.close() | 		f.close() | ||||||
| 	antwort_liste = antwort[antwort.find('Biom'):].strip("'").replace('\\n', '\n').split('\n') | 		antwort_liste = read_file(current_year) | ||||||
| 
 | 
 | ||||||
| 	daten = set(antwort_liste) | 	daten = set(antwort_liste) | ||||||
| 
 | 	# TODO: Leider weiss ich ab hier nur, dass Müll abgeholt wird, leider nicht, welcher :-/ | ||||||
| for datum in daten: |  | ||||||
| 	tomorrow = (datetime.now() + timedelta(1)).strftime('%d.%m.%Y') | 	tomorrow = (datetime.now() + timedelta(1)).strftime('%d.%m.%Y') | ||||||
|  | 	for datum in daten: | ||||||
| 		datum = datum.split(';') | 		datum = datum.split(';') | ||||||
| 		l_muell = get_index_positions(datum, tomorrow) | 		l_muell = get_index_positions(datum, tomorrow) | ||||||
| 		if len(l_muell) > 0: | 		if len(l_muell) > 0: | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user