2016-06-03 3 views
1

문제가 있습니다 ...파이썬에서 구분 기호없이 CSV를 작성하십시오.

이 예제와 같은 많은 웹 사이트 목록이 있습니다. 나는 CSV 파일을 가지고 싶을 때, 나는이납니다 그러나

[u'www.rosenzweigco.com', u'www.investopedia.com', u'www.bk.mufg.jp'] 

:

w,w,w,.,r,o,s,e,n,z,w,e,i,g,c,o,.,c,o,m, 
w,w,w,.,i,n,v,e,s,t,o,p,e,d,i,a,.,c,o,m, 

내 코드는 다음 (내가 대신 쉼표의 공백 필요가 없습니다) :

def writeCsvFile(fname,data): 
mycsv = csv.writer(open(fname, 'wb'), delimiter=',',quoting=csv.QUOTE_NONE) 
for row in data: 
    mycsv.writerow(row) 

Tks !!

답변

0

.writerow은 iterable을 취해서 반복 가능한 각 항목을 csv의 열로 씁니다. 단일 문자열을 row으로 전달하는 것 같습니다. 이 경우, 당신이 원하는 것 :

for website in data: 
    mycsv.writerow([website]) 

그러나, 나는이 없는 추측하고있어 매우 당신이 단 한 줄에 하나의 항목을 작성하려는 경우 csv 필요가 없기 때문에 당신이 원하는. 문제는 아마도 함수에 data을 지정하는 방법 일 것입니다. 다음을 원할 수도 있습니다.

이제 data은 목록 목록입니다. 따라서 반복 할 때 (for row in data) 실제로는 단일 문자열 대신 행 (list)이 표시됩니다.

0

나를 때리는 첫 번째 생각은 칼힐 손의 대답과 같습니다. 당신은 파이썬 3을 사용하는 경우 또한, 당신은 파이썬 2.7

파이썬 3.5

with open('eggs.csv', 'w', newline='') as csvfile: 
    spamwriter = csv.writer(csvfile, delimiter=' ', 
          quotechar='|', quoting=csv.QUOTE_MINIMAL) 

파이썬 2.7

import csv 
with open('eggs.csv', 'wb') as csvfile: 
    spamwriter = csv.writer(csvfile, delimiter=' ', 
          quotechar='|', quoting=csv.QUOTE_MINIMAL) 
    spamwriter.writerow(['Spam'] * 5 + ['Baked Beans']) 
    spamwriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam']) 
달리 바이너리 모드로하지 않고, 'w'매개 변수 파일을 열 필요
관련 문제