2017-10-26 1 views
3

저는 지금 당분간이 문제에 시달렸습니다. 어쩌면 누군가 도움을 줄 수 있습니다. 사전 목록이 있습니다. 이러한 각 사전은 별도의 .csv 파일에 기록해야합니다. 어떻게해야합니까?Python 3.x에서 여러 개의 csv 파일에 여러 사전 작성하기

을 File1 : 내가 네 .CSV 파일을 다음과 같이보고 싶은

from openpyxl import * 
from openpyxl.styles import * 
import csv 

a = 1 
b = 2 
c = 3 
d = 4 
e = 5 
f = 6 
g = 7 
h = 8 

one = {'A':a,'B':b} 
two = {'C':c,'D':d} 
three = {'E':e,'F':f} 
four = {'G':g,'H':h} 
list = [one,two,three,four] 

def main(): 
    for eachfilename, eachdict in enumerate(list): 
     with open(eachfilename, 'w') as csvfile: 
      writer = csv.writer(csvfile) 
      for line in eachdict: 
       writer.writerow(line) 

main() 

을 결국 : 나는이 작동하지 않는, 지금까지 무엇을 가지고

A,a 
B,b 

파일 2 :

C,c 
D,d 

File3 : ...

+3

왜 현재 코드가 작동하지 않는지 설명 할 수 있다면 좋을 것입니다. –

+0

BTW main에서 첫 번째'for' 루프 다음에 간단한'print eachfilename, eachdict'를 추가하면 합리적인 (즉, 파일 이름과 다음 코드가 가정하는 것으로 보이는 사전을 볼 수 있습니까? – barny

답변

1

사전을 정수 값에 할당 할 수 없습니다. 이것을 시도하십시오 :

import csv 
s = [{'A':a,'B':b}, {'C':c,'D':d}, {'E':e,'F':f}, {'G':g,'H':h}] 
new_data = [["{},{}".format(a, b) for a, b in i.items()] for i in s] 
write = csv.writer(open('filename.csv')) 
write.writerows(new_data) 
2

먼저 해결해야 할 코드에 몇 가지 문제가 있습니다.

  1. 변수 이름
  2. 변수 A, B, C, D, E, F, G, H 모두 정수로 정의되지 않을 수있다.
  3. csv.writer()에 전달하는 인수에는 write() 기능이 있어야합니다.이 경우 사용자의 경우 File 객체 여야합니다. 따라서 csv.writer(csvfile)이 아니라 csv.writer(eachfilename)을 사용해야합니다.
+0

네, 고마워요. 최소 예제를 작성했을 때 이것들은 미끄러졌습니다 ... – lennart

+1

최소한의 예를 생각해 보면 _runs_와 _ 이렇게하면 문제가 _ 나타나며 독자가 문제를 이해하고 재현하여 문제를 해결할 수 있습니다. – barny

관련 문제