2015-04-01 18 views

cevap

8

Boyut bayt cinsindedir. SpooledTemporaryFile() source code Gönderen:

def _check(self, file): 
    if self._rolled: return 
    max_size = self._max_size 
    if max_size and file.tell() > max_size: 
     self.rollover() 

ve file.tell() bayt bir pozisyon verir.

Ben bayt cinsinden ifade olan Python dosya nesnelerle bağlantılı olarak terimin size her türlü kullanımı açık bir beyanı garanti olduğunu söyleyebilirim. size ile ilgilenen diğer tüm dosya yöntemleri her zaman bayt olarak da çalışır.

+2

İyi nokta, baytların standart olmasıyla ilgili. Ancak, bu, Python hakkında iyi bir bilgi gerektiren gizli bir kuraldır: Bence SpooledTemporaryFile(), boyutun byte cinsinden olduğunu açıkça belirtmelidir, böylece * herhangi biri * Python kültüründen çok fazla bir şey kullanmadan onu kullanabilir. Bununla ilgili bir sorun açacağım. – EOL

+0

@EOL: Bunun gerekli olduğundan emin değilim; C veya Java veya C# ile veya çalıştığım başka bir dilde, baytlarla uğraştığınız bir dosya nesnesine veya Unicode desteği için kod noktalarına dikkat edin. Sadece daha üst düzey API'ler veya kullanıcı arayüzleri ile uğraşırken diğer birimleri görmeye başlarsınız. –

+1

Dokümanlarda "byte'lar" eklemek çok maliyetli olmayacağından eminim: Bu, aynı soruna sahip olan kişilerin kaybettiği süreden daha az zaman alacaktır. 1024 * 10 boyutunu kullandığınız cevaplarınızdan (2012'den) dolayı bu soruyu yaşadım: bu son derece küçüktü, bu yüzden bayt olup olmadıklarını merak ettim. – EOL

İlgili konular