- utilizzare il modulo
fileinput
al ciclo su standard input o un elenco di file,
- decodificare le righe si legge da UTF-8 a Unicode oggetti
- poi mappare qualsiasi caratteri unicode che volete con il metodo
translate
translit.py
sarebbe simile a questa:
#!/usr/bin/env python2.6
# -*- coding: utf-8 -*-
import fileinput
table = {
0xe4: u'ae',
ord(u'ö'): u'oe',
ord(u'ü'): u'ue',
ord(u'ß'): None,
}
for line in fileinput.input():
s = line.decode('utf8')
print s.translate(table),
E si potrebbe usare in questo modo:
$ cat utf8.txt
sömé täßt
sömé täßt
sömé täßt
$ ./translit.py utf8.txt
soemé taet
soemé taet
soemé taet
Nel caso in cui si sta utilizzando Python 3 stringhe sono di Unicode impostazione predefinita e si Dont' bisogno di codificarlo se contiene caratteri non ASCII o anche caratteri non latini. Quindi la soluzione sarà come segue:
line = 'Verhältnismäßigkeit, Möglichkeit'
table = {
ord('ä'): 'ae',
ord('ö'): 'oe',
ord('ü'): 'ue',
ord('ß'): 'ss',
}
line.translate(table)
>>> 'Verhaeltnismaessigkeit, Moeglichkeit'
di ricerca in modo per "traslitterazione" per trovare questioni connesse. – hop
http://stackoverflow.com/questions/816285/where-is-pythons-best-ascii-for-this-unicode-database/816319#816319 – hop
Il dato script Perl in realtà sostituirà solo la prima occorrenza su ciascuna riga, ma questo è sicuramente un incidente. – tripleee