Yanıtlar:
Buradaki anahtar , açılan dosyayı temsil eden nesnenin nameniteliğidir f. Böyle anlıyorsun:
>>> f = open('/Users/Desktop/febROSTER2012.xls')
>>> f.name
'/Users/Desktop/febROSTER2012.xls'
Yardımcı olur mu?
tempfileözellikle bahsettiğiniz tempfile.NamedTemporaryFilebelgelerin hemen altındaki modül belgelerini okuyun tempfile.TemporaryFile. Bu, geçici dosya için özel bir durumdur ve belgelerde görüldüğü gibi, zaten mevcut bir çözüm vardır. tempfile.TemporaryFileadı okumak istemeniz durumunda kullanılması amaçlanmamıştır.
f = open('some/relative/path')ve sonra gibi çalışma dizinini değiştirmek os.chdir('somewhere/esle'), o zaman f.namebuna göre güncelleme olmayacak ve mevcut çalışma dizini mantıklı olmayacaktır.
Aynı sorunu yaşadım. Göreli bir yol kullanıyorsanız, os.path.dirname (yol) yalnızca göreli yolu döndürür. os.path.realpath hile yapar:
>>> import os
>>> f = open('file.txt')
>>> os.path.realpath(f.name)
os.path.realpath, '~ / Documents / text.txt' yerine '~ / text.txt' döndürür.
Ve sadece dizin adını almak istiyorsanız ve onunla birlikte gelen dosya adına gerek yoksa, bunu osPython modülünü kullanarak aşağıdaki geleneksel yolla yapabilirsiniz .
>>> import os
>>> f = open('/Users/Desktop/febROSTER2012.xls')
>>> os.path.dirname(f.name)
>>> '/Users/Desktop/'
Bu şekilde dizin yapısını elde edebilirsiniz.
f = open('febROSTER2012.xls'). Tam yola nasıl gidebilirsin?
Bu şekilde de elde edebilirsiniz.
filepath = os.path.abspath(f.name)
tempfile.TemporaryFile(mode='w', prefix='xxx', suffix='.txt')çalışmıyor!