2008-11-27 21 views
21

Próbuję zapisać w zmiennej nazwę bieżącego pliku, który otworzyłem z folderu.Jak uzyskać nazwę otwartego pliku?

Jak mogę to zrobić? Próbowałem już cwd = os.getcwd(), ale to tylko daje mi ścieżkę do folderu i muszę zapisać nazwę otwartego pliku.

Czy możesz mi pomóc?

+0

powinieneś być czysty, masz na myśli plik .py (to znaczy sam skrypt) lub plik, który otworzyłeś używając open ("filename")? – hasen

Odpowiedz

38
Python 2.5.1 (r251:54863, Jul 31 2008, 22:53:39) 
[GCC 4.1.2 (Ubuntu 4.1.2-0ubuntu4)] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> f = open('generic.png','r') 
>>> f.name 
'generic.png' 
3

Może ten scenariusz jest tym, czego chcesz?

import sys, os 
print sys.argv[0] 
print os.path.basename(sys.argv[0]) 

Po uruchomieniu powyższego skryptu otrzymuję;

D:\UserData\workspace\temp\Script1.py 
Script1.py 
31

Jeszcze jedna przydatna sztuczka do dodania. Zgadzam się z oryginalną poprawną odpowiedzią, jednak jeśli jesteś podobny do mnie na tej stronie, która chce tylko nazwy pliku bez reszty ścieżki, to działa dobrze.

>>> f = open('/tmp/generic.png','r') 
>>> f.name 
'/tmp/generic.png' 
>>> import os 
>>> os.path.basename(f.name) 
'generic.png' 
Powiązane problemy