1
我要拆分的Python字典,並將其寫入基於NO_OF_LINES_PER_FILE不同的文件和字典的大小分裂字典並將其寫入不同的csv文件在python
輸入
NO_OF_LINES_PER_FILE
所以如果NO_OF_LINES_PER_FILE = 2和大小字典的爲10的我想字典被分裂成5個文件(每個文件將有2行)
腳本
import csv
NO_OF_LINES_PER_FILE = 2
s = {"2222":["1","2","3"],"3456":["2","3","4"],"5634":["4","5"],"23543":["456","3"],"29587":["4","5"],"244":["23","34"],"455":["3","4"],"244221":["5"],"23232345":["2323","43"]}
def again(c,h,NO_OF_LINES_PER_FILE1):
f3 = open('num_'+str(h)+'.csv', 'at')
if c == 1:
ceh = 2
else:
ceh = c
print ceh
v = 0
for w in s:
v = v + 1
if v < ceh:
pass
elif v > NO_OF_LINES_PER_FILE1:
print "yes"
NO_OF_LINES_PER_FILE1 = NO_OF_LINES_PER_FILE1 + 1
h = NO_OF_LINES_PER_FILE1 + 1
again(c,h,NO_OF_LINES_PER_FILE1)
else:
writer = csv.writer(f3,delimiter = ',', lineterminator='\n',quoting=csv.QUOTE_ALL)
writer.writerow(s[w])
c = c + 1
def split():
f3 = open('has_'+str(NO_OF_LINES_PER_FILE)+'.csv', 'at')
writer = csv.writer(f3,delimiter = ',', lineterminator='\n',quoting=csv.QUOTE_ALL)
c = 0
for w in s:
if c >= NO_OF_LINES_PER_FILE:
NO_OF_LINES_PER_FILE1 = NO_OF_LINES_PER_FILE + 1
h = NO_OF_LINES_PER_FILE
again(c,h,NO_OF_LINES_PER_FILE1)
break
else:
#print NO_OF_LINES_PER_FILE
writer = csv.writer(f3,delimiter = ',', lineterminator='\n',quoting=csv.QUOTE_ALL)
writer.writerow(s[w])
c = c + 1
split()
但是這個腳本不能正常工作,並創造了許多文件
在上面的腳本NO_OF_LINES_PER_FILE = 2和字典S的尺寸是9
所以我要5個文件,前四個文件將包含2行,每行和第五個文件將包含1行
我該如何解決這個問題?
這將有助於如果你能告訴您的輸入文件基礎的預期內容。 –
預期內容:我想要一個鍵值([「1」,「2」,「3」])寫入CSV文件... – Mounarajan
所以,你想單個文件存在與'([「1」 ,「2」,「3」])'在裏面?這就是你剛纔所說的,但這與你在問題中所描述的有很大不同。 –