Ansi zu Integer

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Django Unchained
User
Beiträge: 5
Registriert: Dienstag 2. März 2021, 16:23

Hi,
weis zufällig irgendjemand wie ich die Zeichen einer Datei mit Ansi Decodierung in Integers umwandeln kann?
Mein derzeitiger Code:
t='file'
with open(t, 'r') as f:
for i in range(238183):
b.append(f.readline())
res = [ord(ele) for sub in b for ele in sub]
Benutzeravatar
__blackjack__
User
Beiträge: 13007
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Django Unchained: Was ist denn bitte „Ansi Decodierung“? Der Code funktioniert ganz offensichtlich nicht, denn weder `b` noch das eine `sub` sind definiert. Das in *einer* „list comprehension“ zweimal der Name `sub` für verschiedene Objekte vorkommt ist mehr als unübersichtlich.

An den Namen sollte man auch dringend arbeiten.

Wo kommt die magische 238183 her? Und `readline()` ist hier so ziemlich das ineffizienteste was man machen kann. Die Methode macht nur ganz ganz selten Sinn.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
rogerb
User
Beiträge: 878
Registriert: Dienstag 26. November 2019, 23:24

versuch doch mal:

Code: Alles auswählen

result = []
t='file'
with open(t, 'r', encoding='ansi') as ansi_file:
    lines = ansi_file.readlines()

for line in lines:
    for character in line:
        result.append(ord(character))
Information bzgl. encoding:
https://docs.python.org/3/library/functions.html#open
Benutzeravatar
__blackjack__
User
Beiträge: 13007
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Bitte nicht "ansi" als Kodierung verwenden. Das ist krank, kaputt, und funktioniert nur unter Windows, weil es da genug Vollhonks gibt, die der Meinung sind "ANSI" sei eine Kodierung und Python sich *nur auf Windows* der Dummheit der Massen gebeugt hat. Python ist halt ein bisschen rückratlos. 🙂
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
narpfel
User
Beiträge: 643
Registriert: Freitag 20. Oktober 2017, 16:10

`utf-∞` ist immer noch das beste Encoding:

Code: Alles auswählen

In [1]: with open("foo", "w", encoding="utf-∞") as file:
   ...:     file.write("Bestes Encoding: utf-∞\n")
   ...:

In [2]: !cat foo
Bestes Encoding: utf-∞
Antworten