Seite 1 von 1

.lstrip entfernt zuviel

Verfasst: Sonntag 15. März 2015, 11:02
von wattwurm
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

Re: .lstrip entfernt zuviel

Verfasst: Sonntag 15. März 2015, 11:05
von EyDu
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

Re: .lstrip entfernt zuviel

Verfasst: Sonntag 15. März 2015, 11:08
von 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. :-)

Re: .lstrip entfernt zuviel

Verfasst: Sonntag 15. März 2015, 11:25
von EyDu
@BlackJack: Ich würde "/myopathes" bevorzugen, denn mit "myopathes" hätte man ein gültiges Wort bei Scrabble. Zumindest in Frankreich.

Re: .lstrip entfernt zuviel

Verfasst: Sonntag 15. März 2015, 16:45
von wattwurm
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

Re: .lstrip entfernt zuviel

Verfasst: Sonntag 15. März 2015, 16:57
von EyDu
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.

Re: .lstrip entfernt zuviel

Verfasst: Dienstag 17. März 2015, 19:11
von wattwurm
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

Re: .lstrip entfernt zuviel

Verfasst: Dienstag 17. März 2015, 21:09
von Sirius3
@wattwurm: wenn Du nur den letzten Teil deines Quellpfades willst, gibt es die passende Methode in os.path: basename.

Re: .lstrip entfernt zuviel

Verfasst: Mittwoch 18. März 2015, 18:10
von wattwurm
Autsch!
Da ich schon ne ganze Zeit mit dirname rumspiele hätte mir basenam eeigentlich auffallen müssen :?

wattwurm