weiss jemand, was man wie / wo ändern muss, damit python Statements à la:
Code: Alles auswählen
re.sub("ß", "ss", string)
Das Problem liegt ja darin, dass nicht-ASCII-Zeichen per default nicht "erkannt" werden...
Danke im Voraus.
Code: Alles auswählen
re.sub("ß", "ss", string)
Code: Alles auswählen
In [4]: print re.sub('ß', 'ss', u'Straße')
Straße
In [5]: print re.sub(u'ß', 'ss', u'Straße')
Strasse
In [6]: print re.sub(u'ß', 'ss', 'Straße')
Straße
In [7]: print re.sub('ß', 'ss', 'Straße')
Strasse
Code: Alles auswählen
f = file(unicodeObjekt)
while True:
out = f.readlines()
out = out.lower()
ae = re.sub(u'ä', 'ae', out)
oe = re.sub(u"ö", "oe", ae)
ue = re.sub(u"ü", "ue", oe)
ss = re.sub(u"ß", "ss", ue)
return ss
f.close()
Code: Alles auswählen
#!/usr/bin/python
# -*- coding: utf-8 -*-#
import re
import sys
def funktion(unicodeObjekt):
'''Gib eine Datei auf der Standardausgabe aus.'''
f = unicode(file(unicodeObjekt))
f.unicode.encode('utf-8')
while True:
out = f.readlines()
out = out.lower()
ae = re.sub(u'ä', 'ae', out)
oe = re.sub(u"ö", "oe", ae)
ue = re.sub(u"ü", "ue", oe)
ss = re.sub(u"ß", "ss", ue)
return ss
f.close()
if len(sys.argv) < 2:
print 'Es wurden keine Parameter übergeben.'
sys.exit()
else:
for unicodeObjekt in sys.argv[1:]:
funktion(unicodeObjekt)
Code: Alles auswählen
In [8]: unicode(file('blabla.txt'))
Out[8]: u"<open file 'blabla.txt', mode 'r' at 0x956e5a0>"
In [9]: _.unicode.encode('utf-8') # _ ist u"<open ...>"
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
/home/jakob/<ipython-input-9-3480aff0e5da> in <module>()
----> 1 _.unicode # _ ist u"<open ...>"
AttributeError: 'unicode' object has no attribute 'unicode'
Code: Alles auswählen
f = unicode(file(unicodeObjekt))
f.unicode.encode('utf-8')
Code: Alles auswählen
#!/usr/bin/python
# -*- coding: utf-8 -*-#
import sys
def funktion(unicodeObjekt):
'''Gib eine Datei auf der Standardausgabe aus.'''
with open(unicodeObjekt, "r") as f:
content = unicode(f.read())
return string.replace(content, 'ä', 'ae')
if len(sys.argv) < 2:
print 'Es wurden keine Parameter übergeben.'
sys.exit()
else:
funktion(sys.argv[1])
Code: Alles auswählen
content = unicode(f.read())
Code: Alles auswählen
f.read().encode('*encoding*')
Code: Alles auswählen
return content.replace(u'ä', u'ae') # ist übrigens "besser" als string.replace, vor allem wenn man string gar nicht importiert
Code: Alles auswählen
def funktion(unicodeObjekt):
'''Gib eine Datei auf der Standardausgabe aus.'''
with open(unicodeObjekt, "r") as f:
content = unicode(f.read().decode('utf-8'))
return content.replace(u'ä', u'ae')
Code: Alles auswählen
deffunktion(unicodeObjekt):
'''Gib eine Datei auf der Standardausgabe aus.'''
with open(unicodeObjekt, "r") as f:
content = (f.read().decode('utf-8'))
print content.replace(u'ä', u'ae')
Das merkwürdige ist: Auch wenn ich Kommentare mit ä,ö,ü mache, kommt nun diese Fehlermeldung. Wieso? Ich habe doch das UTF-8-Format - da sollte dies kein Problem sein...SyntaxError: Non-ASCII character '\xc3' in file 22.py on line 16, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
Code: Alles auswählen
# -*- coding: utf-8 -*-#
import sys
def funktion(unicodeObjekt):
'''Gib eine Datei auf der Standardausgabe aus.'''
with open(unicodeObjekt, "r") as f:
content = (f.read().decode('utf-8'))
print content.replace(u'ä', u'ae')
if len(sys.argv) < 2:
print 'Es wurden keine Parameter uebergeben.'
sys.exit()
else:
funktion(sys.argv[1])