2012-07-09 2 views
0

가능한 중복은 :
python csv: save results to csv file
Python: How to write a dictionary of tuple values to a csv file?파이썬으로 csv 파일을 작성하는 방법은 무엇입니까?

이전

나는 각 줄의 텍스트 파일에 라인을 기준으로 결과 행을 작성하려면이 옵션을 사용하여 값 탭

로 구분됩니다
fd_out.write("%s\t%d\t%d\t%s\n" % (obj["name"],obj["count"],obj["age"],obj["params"]["country"]) 

하지만 지금은 대신 CSV 출력을 원합니다. 어떻게해야합니까? 코드를 작성 하시겠습니까? 그냥 CSV를 가져오고 다른 방법을 사용해야합니까? 나는

fd_out.write("%s,%d,%d,%s\n" % (obj["name"],obj["count"],obj["age"],obj["params"]["country"]) 
+4

http://docs.python.org/library/csv.html – tobixen

답변

6

코드에 기본 데이터가 작동해야하지만 데이터에 쉼표가있는 경우 일부 문제가 발생할 수 있습니다.

csv 모듈은 비슷한 문제뿐만 아니라 그 문제도 처리합니다. 사용법은 그냥 할 것, 매우 쉽습니다 :

writer = csv.writer(fd_out) 
writer.writerows((obj["name"],obj["count"],obj["age"],obj["params"]["country"])) 

참고 이중 괄호, 우리는 writerows 때문에 반복 가능한 제외하고 튜플을 전달합니다. 자세한 정보가 필요하면 주저없이 the doc을 확인하십시오.

1

"CSV는"표준이 아니며, 비록이 "CSV는"문자 구분 기호 그냥 그대로 탭을 사용하여, "쉼표로 구분 된 값"을 의미 ... 프로그래밍 꽤 안돼서 죄송합니다 더 일반적인 것이 아니라면 쉼표와 같이 일반적입니다. 위키 백과 : http://en.wikipedia.org/wiki/Comma-separated_values

구분 기호 (예 : 탭 또는 쉼표)가 포함 된 CSV 입력란을 처리하려면 데이터를 큰 따옴표로 묶는 것이 일반적입니다. 표준이 없으며 때로는 구분 기호가 들어있는 데이터 필드 만 인용됩니다. 아래의 예에서 모든 필드는 인용됩니다.

CSV 내장 라이브러리를 사용하면 원하는대로 출력 CSV 파일의 형식을 쉽게 수정할 수 있습니다.

import csv 

objs = [{'name': 'knut', 'age': 74, 'count': 13}, 
     {'name': 'lydia', 'age': 14, 'count': 3}] 

with open("/tmp/example.csv", "w") as outfile: 
    ## Ordering of the fields in the CSV output 
    headers = ['name', 'age', 'count'] 

    ## although "CSV" stands for "comma separated values", 
    ## it's quite common to use other delimiters i.e. TAB 
    ## and still call it "CSV". 
    writer = csv.writer(outfile, delimiter="\t", quotechar='"', quoting=csv.QUOTE_ALL) 

    ## it's common in CSV to have the headers on the first line 
    writer.writerow(headers) 

    ## Write out the data 
    for obj in objs: 
     writer.writerow([obj[key] for key in headers]) 

이 예 파이썬 응축리스트 연산을 보여 ... [obj[key] for key in headers]는 "나를 헤더의 모든 키 OBJ [키]의 목록을 제공"을 의미한다.

관련 문제