मैं कुछ हफ्तों के लिए इस पर काम कर रहा हूं और मैंने पाइथन मेमोरी रिसाव के बारे में कई प्रश्न पढ़े हैं, लेकिन मैं इसे समझ नहीं पा रहा हूं।पायथन को मार दिया जाता है (शायद स्मृति रिसाव)
मेरे पास एक फ़ाइल है जिसमें लगभग 7 मिलियन लाइनें हैं। प्रत्येक पंक्ति के लिए, मुझे एक शब्दकोश बनाना होगा।
[{'a': 2, 'b':1}{'a':1, 'b':2, 'c':1}]
क्या मैं कर रहा हूँ है ...
list = []
for line in file.readlines():
terms = line.split(" ")
dict = {}
for term in terms:
if term in dict:
dict[term] = dict[term] + 1
else:
dict[term] = 1
list.append(dict.copy())
dict.clear()
file.close()
समस्या यह हमेशा 6000000 रेखा के आसपास की हत्या कर दी हो जाता है जब मैं इस चलने वाले है: तो इस शब्दकोश की एक सूची है कि लग रहा है की तरह है। मूल रूप से मैं बस dict = {}
कर रहा था लेकिन इसे बदल दिया, इसलिए मैं इसी तरह की पोस्ट पढ़ने के बाद dict.clear() करता हूं, लेकिन इसमें कुछ भी सुधार नहीं हुआ। मुझे परिपत्र संदर्भों के बारे में कुछ पदों के बारे में बताया गया है और मैंने अपने कोड में देखा लेकिन मुझे नहीं लगता कि मुझे वह समस्या है।
मुझे संदेह है कि सूची में 7 मिलियन शब्दकोशों को संग्रहीत करने के लिए पायथन में नहीं रखा जा सकता है? मैं किसी भी सलाह की सराहना करता हूं कि मैं पूरी चीजों को मारने के बिना कैसे चला सकता हूं।
आप यहां क्या हासिल करने की कोशिश कर रहे हैं? –
@ThomasOrozco मैं थोड़ा मेरे सवाल संपादित, लेकिन मैं क्या करने की कोशिश कर रहा हूँ प्रत्येक पंक्ति – kabichan
आप file.readlines में _for लाइन की जगह() की कोशिश क्या के लिए अवधि गिनती शब्दकोश स्टोर करने के लिए है: फ़ाइल में _ _for लाइन द्वारा: _ ? – uselpa