ich hätte zwei kurze Frage. Zuerst einmal ein Code Snippet:
Code: Alles auswählen
a = ' Hallo\nUwe '
print('=> type(a)={} and len(a)={}:'.format(type(a), len(a)))
print('1.:', '>{}<'.format(a))
print('2.:', '>{}<'.format(' '.join(a.split())))
print('-' *40)
a = r' Hallo\nUwe '
print('=> type(a)={} and len(a)={}:'.format(type(a), len(a)))
print('3.:', '>{}<'.format(a))
print('4.:', '>{}<'.format(' '.join(a.split())))
print('-' * 40)
import codecs
c = codecs.decode(a, 'unicode_escape')
print('=> type(c)={} and len(c)={}:'.format(type(c), len(c)))
print('5.:', '>{}<'.format(' '.join(c.split())))
[codebox=text file=Unbenannt.txt]
=> type(a)=<class 'str'> and len(a)=12:
1.: > Hallo
Uwe <
2.: >Hallo Uwe<
----------------------------------------
=> type(a)=<class 'str'> and len(a)=13:
3.: > Hallo\nUwe <
4.: >Hallo\nUwe<
----------------------------------------
=> type(c)=<class 'str'> and len(c)=12:
5.: >Hallo Uwe<
[/code]
Meine Fragen:
Ich benutze Python 3.6.2.
1. Wie kann ich herausfinden, ob ein Objekt ein normaler oder ein raw string ist ?
typ() führt jeweils zu den gleichen Ergebnissen, aber ' '.join(a.split()) erzeugt, erwartbar sehr unterschiedliche Ausgaben.
Um jeweils zu einem gleichen Ergebnis zu kommen, müsste ich also vorher Wissen, um welche Art von Objekt es sich handelt, aber wie mache ich das ?
2. Um einen raw string wieder in einen normalen string zu konvertieren, ist mir nur codecs.decode() eingefallen. Gibt es eine bessere Lösung ?
Vielen Dank