से एक बाइट पढ़ें मेरे पास यह फ़ंक्शन है कि मैं एक बड़ी फ़ाइल से एक बाइट पढ़ना चाहता हूं। एकमात्र समस्या यह है कि फ़ाइल की एक निश्चित राशि के बाद पीसी पर मेमोरी एक स्थिर 1.5 जीबी से 4 जीबी तक और ऊपर की ओर बढ़ती है, इस पर निर्भर करता है कि कितनी फाइल पढ़ती है। (मैं 80 फाइलों में तोड़ता हूं क्योंकि उच्चतर मेरे पीसी को दुर्घटनाग्रस्त कर देगा)बड़ी फ़ाइल
मैं चाहता हूं कि 1 बाइट प्राप्त करें और पूरी फाइल न हो। कृपया मदद करें।
def mem_test():
count = 0
for dirpath, dnames, fnames in scandir.walk(restorePaths[0]):
for f in fnames:
if 'DIR.EDB' in f or 'PRIV.EDB' in f:
f = open(os.path.join(dirpath, f), 'rb')
f.read(1) #Problem line!
f.close()
if count > 80:
print 'EXIT'
sys.exit(1)
count += 1
mem_test()
तो क्या '#Problem लाइन पर होता है'? एक त्रुटि? ... क्या आपको वापसी मूल्य की आवश्यकता है? – Ryan
क्या यह तब भी होता है जब आप पढ़ नहीं पाते? खुला मत करो? 'Fnames' पर पुन: प्रयास न करें? –
@ जेसनग्रे: क्या आपकी समस्या अभी भी होती है, जब आप मैन्युअल ओपनिंग/क्लोजिंग को 'दस्तावेज] में उल्लिखित' साथ 'कथन में बदलते हैं (http://docs.python.org/2/tutorial/inputoutput.html#methods- के-फ़ाइल-वस्तुओं)? यह सुरक्षित है कि रास्ता: 'खुले (os.path.join (dirpath, f),' आरबी ') के रूप में f: f.read (1) '। हो सकता है कि आप इन फ़ाइलों को बंद न करें, भले ही हम यहां क्या देखते हैं? – Tadeck