Python String Methode .expandtabs() zum Umwandeln von Tabs in Leerzeichen
Über die Methode expandtabs()
werden alle in einem Strings enthaltene Tabs (\t) in Leerzeichen umgewandelt. Es werden 8 Leerzeichen für einen Tab genutzt, sofern man keine andere Angabe als Parameter mitgibt:
string.expandtabs([Anzahl_Leerzeichen])
Schauen wir es uns als Beispielcode an:
inhalt = "Textinhalt\t1234567890\tmehr Inhalt"
ergebnis = inhalt.expandtabs()
print(ergebnis)
Als Ergebnis erhalten wir folgende Ausgabe:
Textinhalt 1234567890 mehr Inhalt
Parameter bei expandtabs()
Über den Parameter kann man die gewünschte Anzahl an Tabs angeben, wenn man eine andere Anzahl als 8 (was der Standardeinstellung entspricht), gerne hätte.
Beispiele:
inhalt = "Textinhalt\t1234567890\tmehr Inhalt"
print("01234567890123456789012345678901234567890123456789")
print(inhalt.expandtabs(), " (Standardeinstellung 8)\n")
print("01234567890123456789012345678901234567890123456789")
print(inhalt.expandtabs(2), " (Tabstopp bei 2)\n")
print("01234567890123456789012345678901234567890123456789")
print(inhalt.expandtabs(3), " (Tabstopp bei 3)\n")
print("01234567890123456789012345678901234567890123456789")
print(inhalt.expandtabs(4), " (Tabstopp bei 4)\n")
print("01234567890123456789012345678901234567890123456789")
print(inhalt.expandtabs(5), " (Tabstopp bei 5)\n")
print("01234567890123456789012345678901234567890123456789")
print(inhalt.expandtabs(6), " (Tabstopp bei 6)\n")
print("01234567890123456789012345678901234567890123456789")
print(inhalt.expandtabs(7), " (Tabstopp bei 7)\n")
print("01234567890123456789012345678901234567890123456789")
print(inhalt.expandtabs(8), " (Tabstopp bei 8)\n")
print("01234567890123456789012345678901234567890123456789")
print(inhalt.expandtabs(9), " (Tabstopp bei 9)\n")
print("01234567890123456789012345678901234567890123456789")
print(inhalt.expandtabs(10), " (Tabstopp bei 10)\n")
Und als Ergebnis erhalten wir:
01234567890123456789012345678901234567890123456789 Textinhalt 1234567890 mehr Inhalt (Standardeinstellung 8) 01234567890123456789012345678901234567890123456789 Textinhalt 1234567890 mehr Inhalt (Tabstopp bei 2) 01234567890123456789012345678901234567890123456789 Textinhalt 1234567890 mehr Inhalt (Tabstopp bei 3) 01234567890123456789012345678901234567890123456789 Textinhalt 1234567890 mehr Inhalt (Tabstopp bei 4) 01234567890123456789012345678901234567890123456789 Textinhalt 1234567890 mehr Inhalt (Tabstopp bei 5) 01234567890123456789012345678901234567890123456789 Textinhalt 1234567890 mehr Inhalt (Tabstopp bei 6) 01234567890123456789012345678901234567890123456789 Textinhalt 1234567890 mehr Inhalt (Tabstopp bei 7) 01234567890123456789012345678901234567890123456789 Textinhalt 1234567890 mehr Inhalt (Tabstopp bei 8) 01234567890123456789012345678901234567890123456789 Textinhalt 1234567890 mehr Inhalt (Tabstopp bei 9) 01234567890123456789012345678901234567890123456789 Textinhalt 1234567890 mehr Inhalt (Tabstopp bei 10)
Auch wenn es so wirkt, als würde sich bei der Einstellung für dem Tabstopp für 2, 3 wie auch bei 4 nichts ändern, passt das Verhalten durchaus. Im Beispiel liegt bei allen 3 Einstellungen der Beginn nach dem ersten umgewandelten Tab bei 12. Und 12 ist ein Vielfaches von 2,3 und 4.
Bis zur Position 10 ist alles belegt durch den vorherigen Text plus eines Leerzeichens. Also kann erst nach 10 der Tab „wirken“. Schauen wir uns die Reihen an:
Bei der 2er-Reihe:
2,4,6,8,10 (alles nicht möglich), 12 (und dort startet dann auch unser Text)
Bei der 3er-Reihe:
3,6,9 (alles nicht möglich), 12 (und dort startet dann auch unser Text)
Bei der 4er-Reihe:
4,8 (alles nicht möglich), 12 (und dort startet dann auch unser Text)
Bei der 6er-Reihe:
6 (nicht möglich), 12 (und dort startet dann auch unser Text)
Die 5er-Reihe ist anders, da hier unser Text bei 15 startet 5,10 (alles nicht möglich), 15 (startet unser Text)