मैं csv फ़ाइलें के एक नंबर पैदा कर रहा हूँ गतिशील, निम्नलिखित कोड का उपयोग कर:सीएसवी फ़ाइल को सीधे ज़िप संग्रह में कैसे कंप्रेस करें?
import csv
fieldnames = ['foo1', 'foo2', 'foo3', 'foo4']
with open(csvfilepath, 'wb') as csvfile:
csvwrite = csv.DictWriter(csvfile, delimiter=',', fieldnames=fieldnames)
csvwrite.writeheader()
for row in data:
csvwrite.writerow(row)
स्थान बचाने के लिए, मैं उन्हें सेक करना चाहते हैं।
gzip
मॉड्यूल का उपयोग करना काफी आसान है:
with gzip.open("foo.gz", "w") as csvfile :
csvwrite = csv.DictWriter(csvfile, delimiter=',', fieldnames=fieldnames)
csvwrite.writeheader()
for row in data:
csvwrite.writerow(row)
लेकिन मैं 'जिप' स्वरूप में फ़ाइल चाहते हैं।
मैं zipfile
मॉड्यूल की कोशिश की, लेकिन मैं सीधे ज़िप संग्रह में फ़ाइलें लिखने में असमर्थ हूँ।
इसके बजाय, मैं, डिस्क के लिए csv फ़ाइल लिखने उन्हें निम्नलिखित कोड का उपयोग कर एक ज़िप फ़ाइल में सेक, और फिर csv फ़ाइल को हटाना होगा।
with ZipFile(zipfilepath, 'w') as zipfile:
zipfile.write(csvfilepath, csvfilename, ZIP_DEFLATED)
मैं एक सीएसवी फ़ाइल सीधे जीएसआईपी के समान संपीड़ित ज़िप पर कैसे लिख सकता हूं?
@ जेएफ। सेबेस्टियन टिप्पणी के लिए धन्यवाद। –