.lstrip entfernt zuviel

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
wattwurm
User
Beiträge: 29
Registriert: Sonntag 25. Januar 2015, 17:27
Wohnort: Nordsee

moin,
warum wird hier zuviel abgeschnitten?:

Code: Alles auswählen

import os
datei = 'meine_Datei.txt'
pfad = '/home/thomas/pytest'

d_pfad = os.path.join(pfad, datei)
print(d_pfad)

schnitt1 = d_pfad.lstrip(pfad)
print(schnitt1)
/home/thomas/pytest/meine_Datei.txt
ine_Datei.txt
das -> me <- von meine_Datei.txt fehlt :K

schönen Sonntag noch :D
wattwurm
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Hmm, was könnte der Parameter bei lstrip nur bedeuten... ? ;-)
lstrip(...)
S.lstrip([chars]) -> string or unicode

Return a copy of the string S with leading whitespace removed.
If chars is given and not None, remove characters in chars instead.
If chars is unicode, S will be converted to unicode before stripping
Das Leben ist wie ein Tennisball.
BlackJack

Statt '/home/thomas/pytest' könnte man da auch '/aehmopsty' angeben. Fänd ich persönlich übersichtlicher, so ohne unnötige doppelte Zeichen und sortiert. :-)
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

@BlackJack: Ich würde "/myopathes" bevorzugen, denn mit "myopathes" hätte man ein gültiges Wort bei Scrabble. Zumindest in Frankreich.
Das Leben ist wie ein Tennisball.
wattwurm
User
Beiträge: 29
Registriert: Sonntag 25. Januar 2015, 17:27
Wohnort: Nordsee

aha, lstrip sieht das Argumennt also nicht als eine Zeichenkette sondern als eien Ansammlung von Zeichen die gelöscht werden sollen.
(lösche solange von links nach rechts bis ein Zeichen vorkommt welches nicht im lstrip Argument angegeben ist). Richtig?

Dann ist lstrip wohl nicht die richtige Funktion für mein vorhaben. Wie oder womit kann ich jetzt die Pfadangabe entfernen?

wattwurm
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Indem du in Zeile fünf nicht den Pfad hinzufügst ;-) Was genau möchtest du mit dem Pfad machen, warum willst du ihn loswerden? Am besten schaust du mal in die Dokumentation des os.path-Moduls, da wird sicher das richtige für dich dabei sein.
Das Leben ist wie ein Tennisball.
wattwurm
User
Beiträge: 29
Registriert: Sonntag 25. Januar 2015, 17:27
Wohnort: Nordsee

Nabend,
Was genau möchtest du mit dem Pfad machen
damit möcht ich z.B src und dst von shutil.move zusammen setzen.

So funktionuckelt es jetzt:

Code: Alles auswählen

import os
datei = 'meine_Datei.txt'
quellpfad = '/home/thomas/pytest'
zielpfad = '/home/thomas/pyramiden'
d_pfad = os.path.join(quellpfad, datei)
print(quellpfad)

schnitt1 = quellpfad.split('/')[-1]
print(schnitt1)

ziel = os.path.join(zielpfad, schnitt1)
print(ziel)
/home/thomas/pytest
pytest
/home/thomas/pyramiden/pytest
Kann man das so machen?

Quellpfad kommt aus einer Dateisuche und kann sich immer ändern.
Die Dateien sollen dann in die Pyramiden :roll: verschoben werden.

Ist shutil.move das Richtige dafü oder wäre rename besser geeignet?

Gruß
wattwurm
Sirius3
User
Beiträge: 17749
Registriert: Sonntag 21. Oktober 2012, 17:20

@wattwurm: wenn Du nur den letzten Teil deines Quellpfades willst, gibt es die passende Methode in os.path: basename.
wattwurm
User
Beiträge: 29
Registriert: Sonntag 25. Januar 2015, 17:27
Wohnort: Nordsee

Autsch!
Da ich schon ne ganze Zeit mit dirname rumspiele hätte mir basenam eeigentlich auffallen müssen :?

wattwurm
Antworten