Wie gibt man Umlaute von einer Datei richtig mit Python aus?
Ich habe ein Python Skript geschrieben, mit dem ich eine zufällige Zeile aus einer Datei ausgeben kann. Allerdings werden Umlaute nicht richtig da gestellt.
Die Datei sieht wie folgt aus:
import os
import random
# clear screen
def clear():
# for windows
if os.name == 'nt':
_ = os.system('cls')
# for mac and linux(here, os.name is 'posix')
else:
_ = os.system('clear')
# put names in a list
def get_names(document):
with open(document, "r") as f:
return f.readlines()
# get a random name from the list
def get_random_name(list):
return random.choice(list)
if __name__ == "__main__":
clear()
input = input("\nGeben sie die Datei zum Auslesen an.\n")
name_list = get_names(input)
name = get_random_name(name_list)
print (name)
1 Antwort
Vom Beitragsersteller als hilfreich ausgezeichnet
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Python, Python 3
Wichtig wäre zu wissen, welche Kodierung die Datei hat und welche Kodierung ausgegeben werden muß. Existiert hier ein Unterschied, dann muß die Kodierung umgewandelt werden.
with open(filename, encoding=...) as f:
Du kannst also beim Öffnen der Datei, sofern es eben eine Textdatei ist, die Kodierung angeben.
KarlRanseierIII
27.10.2022, 01:32
@egamer946
.csv-Dateien sidn Textdateien.
Wenn Du sicher bist, daß sie utf-8 kodiert sind, dann gib dies eben beim Öffnen mit an..
Dann bleibt nur noch zu klären, welche Kodierung auf der Ausgabeseite erwartet wird.
Ich hab bei Notead++ eingestellt, das die Kodierung UFT-8 ist. Außerdem geht es um eine .csv Datei.