Was wäre der richtige Weg, um Dezimalzahlen in ASCII-Darstellung in Python zu konvertieren? Ich habe eine Reihe von Zeilen wie folgt: 99104101101115101
und wenn ich diese Zahlen manuell auf '99 104 101 101 115 101'
getrennt, dann wird es geben 'cheese'
. Quelldatensatz hat keine Leerzeichen, keine Trennzeichen. Angenommen, die Daten enthalten nur Zeichen in a-z A-Z 0-9.konvertieren Dezimalzahlen in Ascii
Antwort
>>> import re
>>> re.sub('1?..', lambda m: chr(int(m.group())), '99104101101115101')
'cheese'
Demo mit einem zufälligen Zeichenfolge von einer Million printable ASCII characters:
>>> import random
>>> original = ''.join(chr(random.randrange(32, 127)) for _ in range(1000000))
>>> len(original), original[:50]
(1000000, '[email protected]=`/Z*s,\\[email protected] PgZ/CE"Nq\\wXvqvDn`&)~BmP$n;f')
>>> encoded = ''.join(str(ord(c)) for c in original)
>>> len(encoded), encoded[:50]
(2284738, '84121456411756907411010461964790421154492436484328')
>>> decoded = re.sub('1?..', lambda m: chr(int(m.group())), encoded)
>>> decoded == original
True
Gute Antwort auf eine schlechte Frage. +1 – intboolstring
Echt schlau, +1. Könnte spektakulär ausfallen, wenn die Daten schlecht sind, aber wen interessiert das? – wim
Tolle Antwort Stefan, danke. – zerocool
Der druckbare ASCII-Bereich reicht von 32 bis 126 Also:
>>> s = '99104101101115101'
>>> s2 = re.sub('3[2-9]|[4-9][0-9]|1[0-1][0-9]|12[0-6]', r' \g<0>', s)
>>> s2
' 99 104 101 101 115 101'
>>> ''.join(chr(int(x)) for x in s2.split())
'cheese'
- 1. Varchar in Ascii konvertieren
- 2. Konvertieren exponentielle Anzahl in Dezimalzahlen in php
- 3. NSString ascii konvertieren in NSString
- 4. Auspacken EBCDIC Verpackt Dezimalzahlen (COMP-3) in einer ASCII-Konvertierung
- 5. Dezimal zu Ascii konvertieren?
- 6. Bash: Konvertieren von Nicht-ASCII-Zeichen in ASCII
- 7. Konvertieren Akzente in R in ASCII
- 8. konvertieren ASCII in Zeichen in .NET
- 9. Konvertieren von ASCII-Quelldateien in JPEGs
- 10. Python-String in ASCII-Repräsentanten konvertieren
- 11. wie ascii in unsigned int konvertieren
- 12. ColdFusion: Akzentuierte regionale Zeichen in ASCII konvertieren
- 13. Müssen String/Char in Ascii-Werte konvertieren
- 14. Konvertieren von ASCII in Unicode-Codierung Problem
- 15. Konvertieren von Dezimalzahlen in sexagesimal (Basis sechzig) in JavaScript
- 16. Wie kann ich Hexadezimalzahlen in Dezimalzahlen in Emacs konvertieren?
- 17. Konvertieren Ansible-Variable von Unicode nach ASCII
- 18. Konvertieren von ASCII-Zeichen zurück in Unicode in Coldfusion
- 19. konvertieren in ASCII oder String in Python 2.7
- 20. Konvertieren von ASCII-Code in char in Java
- 21. wie man char in ascii in Javascript konvertieren
- 22. So konvertieren Sie spezielle ASCII-Zeichen in Hex in Perl
- 23. Wie kann ich Unicode-String in ASCII konvertieren in Java
- 24. Problem Konvertieren Ganzzahl in ASCII-Code in x86 Assembly
- 25. Konvertieren Char in ASCII-Code (Dezimal) in Assembly
- 26. Warum nicht in Dezimalzahlen?
- 27. Handle Dezimalzahlen in Mysqli
- 28. ASCII HEX ASCII in Zahlen?
- 29. Python-Regex, um nicht-ASCII-Zeichen in einer Zeichenfolge zu nächsten Ascii-Äquivalenten zu konvertieren
- 30. Konvertieren von Nicht-ASCII-Zeichen (Umlaute, Akzente ...) in ihre nächste ASCII-Entsprechung (Slug-Erstellung)
Sie müssen die Zahlen aufgeteilt würden in gültige ASCII-Bereiche, wie würden Sie jedoch wissen, dass die '99 104' nicht zum Beispiel' 9 9 10 4' sein sollte? –
@ cricket_007 Wenn das OP angegeben, dass die Zeichen alle A-Z a-z sind, wäre dies lösbar, aber das ist nicht angegeben. Ich stimme aus diesem Grund, diese Frage als "Unklar was du fragst" zu schließen. – intboolstring
Betrachten wir a-zA-Z0-9 als gültige Bereiche. Irgendwelche Vorschläge von Code? – zerocool