में बड़ी फ़ाइलों को ढूंढने और बदलने के लिए अनुकूलित करना मैं पूर्ण शुरुआत पाइथन या उस मामले के लिए किसी भी गंभीर प्रोग्रामिंग भाषा में हूं। अंत में मुझे काम करने के लिए प्रोटोटाइप कोड मिला लेकिन मुझे लगता है कि यह बहुत धीमा होगा।पाइथन
मेरा लक्ष्य किसी सीएसवी फ़ाइल के अनुसार पूर्णांक वाले निर्देशिका में सभी फ़ाइलों (वे सीएसवी) में कुछ चीनी अक्षरों को ढूंढना और प्रतिस्थापित करना है। फ़ाइलों को वर्ष-दर-साल अच्छी तरह से क्रमांकित किया जाता है, उदाहरण के लिए 2000-01.csv, और उस निर्देशिका में एकमात्र फाइलें होंगी।
मैं 500 एमबी के प्रत्येक पड़ोस में लगभग 25 फाइलों में लूपिंग करूँगा (और लगभग दस लाख लाइनें)। मैं जिस शब्दकोश का उपयोग कर रहा हूं उसके बारे में 300 तत्व होंगे और मैं यूनिकोड (चीनी वर्ण) को पूर्णांक में बदल दूंगा। मैंने टेस्ट रन के साथ प्रयास किया और, मान लीजिए कि सबकुछ रैखिक रूप से स्केल करता है (?), ऐसा लगता है कि इसे चलाने के लिए लगभग एक सप्ताह लगेंगे।
अग्रिम धन्यवाद। यहाँ मेरी कोड (! हंसी नहीं है) है:
# -*- coding: utf-8 -*-
import os, codecs
dir = "C:/Users/Roy/Desktop/test/"
Dict = {'hello' : 'good', 'world' : 'bad'}
for dirs, subdirs, files in os.walk(dir):
for file in files:
inFile = codecs.open(dir + file, "r", "utf-8")
inFileStr = inFile.read()
inFile.close()
inFile = codecs.open(dir + file, "w", "utf-8")
for key in Dict:
inFileStr = inFileStr.replace(key, Dict[key])
inFile.write(inFileStr)
inFile.close()
यह पाइथन सम्मेलन है जो कम केस अक्षरों के साथ आवृत्ति चर नाम देने के लिए है। भविष्य में भ्रम से बचने के लिए, मैं 'डिक्ट' शब्द को प्रकार से अलग कुछ भी बदल दूंगा। –
क्या आपकी शब्दकोश कुंजी में प्रत्येक 1 चीनी वर्ण शामिल है, या प्रति कुंजी एकाधिक वर्ण हैं? आप चीनी अक्षरों को पूर्णांक के साथ क्यों बदलना चाहते हैं? –
@ जॉन: मेरे पास एक और 35 फाइलें हैं जिनके पास यह जानकारी पहले से ही पूर्णांक के साथ एन्कोड की गई है, और मैं स्टेटटा में अपना विश्लेषण करूँगा, जो यूनिकोड नहीं पढ़ता है। मुझे एक समय में कई वर्ण पढ़ने की जरूरत है, न केवल 1. – rallen