reducex.py - 1.0.0
Beinhaltet einmal die allgemein gehaltene Version von mir, bei den man die delimiters selber bestimmten kann, und einmal die Version von Leonidas und BlackJack, die speziell nur für die Reduzierung von Pfadstrings gedacht sind.
Have Fun & lg
XtraNine
---
Hi, hier mal ein kleine Funktion. Ist nichts großes oder weltbewegendes Die hatte ich mal gestern schnell geschrieben weil ich das für nen Pfad brauchte den ich reduzieren wollte. Hab die Funktion Allgemein gehalten damit auch nach anderen Zeichen reduziert werden kann
Hier das Script:
Code: Alles auswählen
def reduce_str(string, delimiters, reduce_range=1):
cntr = 0
rstr = ""
for char in string[::-1]:
for delimiter in delimiters:
if char == delimiter:
if cntr == (reduce_range - 1):
return [string[:-len(rstr) - 1], char + rstr[::-1]]
else:
cntr += 1
rstr += char
return []
Code: Alles auswählen
[...]
test_path = "C:\Python\Lib\site-packages\wx-2.6-msw-unicode\wxPython"
print reduce_str(test_path, ['\\', '/',], 1)
print reduce_str(test_path, ['\\', '/',], 2)
print reduce_str(test_path, ['\\', '/',], 3)
[...]
Code: Alles auswählen
['C:\\Python\\Lib\\site-packages\\wx-2.6-msw-unicode', '\\wxPython']
['C:\\Python\\Lib\\site-packages', '\\wx-2.6-msw-unicode\\wxPython']
['C:\\Python\\Lib', '\\site-packages\\wx-2.6-msw-unicode\\wxPython']
Wie man gut erkenne kann, bestimmt der Parameter reduce_range bis zur welchen Tiefe der String reduziert werden soll.
Der Parameter delimiters bekommt halt die Trennzeichen als liste. Damit wird bestimmt bei welchen Zeichen reduziert wird. Die liste kann natürlich so lang sein wie ihr wollt.
Have Fun. Vielleicht kann es ja jemand gebrauchen.
lg xtra
P.S.: Verbesserungsvorschläge sind gerne erwünscht. Soll heißen ihr könnte den Code gerne bis auf letzte sezieren
BTW: Bin auch gleich bei mal andere Varianten zu versuchen udn sie auf ihr Laufzeit hin zu testen xD