zeitgeist Skrevet 23. september 2005 Del Skrevet 23. september 2005 Når jeg skriver script som skal brukes av andre, liker jeg å lage en usage() funksjon som skriver ut enkel bruks-info. F.eks: SCRIPTNAME attempts to retrive info. on publication by its ISBN No. Usage: SCRIPTNAME <ISBN> [Timeout in seconds] Jeg ønsker at SCRIPTNAME skal være navnet på filen selv om dette endres. Jeg har lett etter en enkel måte å få til dette på, men ender opp med en ganske grøtete greie: def usage(): _nof_ = __file__.replace('\\', '/').rsplit('/', 1)[-1].rsplit('.', 1)[0].upper() msg = """%s attempts to retrive info. on publication by its ISBN No. Usage: %s <ISBN> [Timeout in seconds] """ % (_nof_, _nof_) sys.exit(msg.expandtabs(0)) Funksjonen inngår i et plattform-uavhengig template-system jeg har, derfor erstattet jeg '\\' med '/'. Jeg har varianter av denne, men da må jeg importere fra moduler, f.eks os.sep. Finnes det ikke en litt mer pythonic måte å isolere filnavnet på? Lenke til kommentar
A_N_K Skrevet 23. september 2005 Del Skrevet 23. september 2005 Hva med os.path.basename i kombinasjon med os.path.splitext? Lenke til kommentar
zeitgeist Skrevet 23. september 2005 Forfatter Del Skrevet 23. september 2005 Hva med os.path.basename i kombinasjon med os.path.splitext? Joda det blir penere, men det blir så mye importering for så lite Så greit det hadde vært om filnavnet lå uten path i __filename__ eller noe slikt. Lenke til kommentar
A_N_K Skrevet 23. september 2005 Del Skrevet 23. september 2005 Tja, __filename__ var nytt for meg t.o.m. Lenke til kommentar
zeitgeist Skrevet 23. september 2005 Forfatter Del Skrevet 23. september 2005 __filename__ finnes ikke, men burde kanskje ha gjort det. Lenke til kommentar
A_N_K Skrevet 23. september 2005 Del Skrevet 23. september 2005 Oops, mente __file__ så klart. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå