2016-08-25 17 views
5

के साथ एक सीएसवी फ़ाइल में डेटा लिखने का सबसे प्रभावी तरीका मैं जूलिया भाषा में बड़ी मात्रा में डेटा लिखना चाहता हूं। डेटा जेनरेट किया जाता है और फिर सूचियों में संग्रहीत किया जाता है। एक स्यूडोकोड है:जूलिया

f = open("test.csv", "w") 

for i = 1:3 
    position = [j for j = i:(i + 10) ] 
    string_position = string(position) 
    n = length(string_position) 
    write(f, string_position[2:(n - 1)]*"\n") 
end 

close(f) 

हालांकि यह प्रत्येक चरण में तार की लंबाई और फिर श्रृंखला का पहला और अंतिम तत्व को दूर करने के अक्षम लगता है।

क्या कोई तेज तरीका है?

उत्तर

11

एक सरल अनुकूलन

write(f, string_position[2:(n - 1)], "\n") 

बजाय * उपयोग करने के लिए है। यह उत्तराधिकार में दो वस्तुओं को लिखता है, बजाय उन्हें पहले संयोजित करने और फिर परिणाम लिखने के बजाय।

SubString का उपयोग करना भी तेज़ हो सकता है, जो प्रतिलिपि के बिना किसी अन्य स्ट्रिंग का हिस्सा संदर्भित करता है।

सामान्य रूप से, यह मध्यवर्ती तार बनाने से बचने के लिए तेज़ी से होने की संभावना है। पहले स्ट्रिंग बनाने और फिर इसे लिखने के बजाय, अलग-अलग आइटम लिखें। उदाहरण

लिए
for item in position 
    print(f, item, ",") 
end 
print(f, "\n") 

मैं जोड़ने चाहिए मानक पुस्तकालय है कि आप के लिए यह करता है में एक writecsv समारोह नहीं है।