• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

csv 형식으로 write시 출력 결과물이 달라요.

23.07.04 21:16 작성 조회수 306

0

 

 

이렇게 한줄씩 띄어서 출력이 되는데, 이건 무슨 문제인건가요?

선생님이 작성하신 코드 그대로 돌려도 결과가 저렇게 나옵니다..

답변 4

·

답변을 작성해보세요.

0

JA KIM님의 프로필

JA KIM

2024.01.17

with open('./resource/write1.csv', 'w', encoding = 'utf-8', newline='') as f :

끝에 newline = '' 을 삽입해 보세요

 

 

 

0

amusedhh님의 프로필

amusedhh

2023.12.29

저도 같은 상황입니다.. 결과물이 이렇게 한 줄씩 건너서 써지게 나오네요

0

해결이 안되는데, 혹시 어떤 문제 때문일까요?

0

안녕하세요.

코드를 보면 중간에 빈칸을 넣는 코드가 들어갔을 수 있어요.

소스코드를 잘 살펴보세요!

또는 전체를 붙여넣어주시면 확인해드릴께요!

위의 소스코드는 각각 예제4, 5번입니다!

 

#   예제4
w = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15], [16, 17, 18], [19, 20, 21]]

with open('./resource/write1.csv', 'w', encoding='UTF-8') as f:
    print(dir(csv)) # csv 속성 확인

    wt = csv.writer(f)

    #dir 확인
    #print(dir(wt))
    #타입 확인
    #print(type(wt))

    for v in w:
        wt.writerow(v) # writerow : 한 줄 한 줄 작성

#   예제5
with open('./resource/write2.csv', 'w', encoding='UTF-8') as f:
    fields = ['One', 'Two', 'Three']
    
    wt = csv.DictWriter(f, fieldnames = fields) # DictWriter : dict형으로 쓸 수 있음, fieldnames : 필드명(헤더네임)쓸 수 있음.
    
    wt.writeheader() # 헤더 네임 작성

    for v in w:
        wt.writerow({'One' : v[0], 'Two' : v[1], 'Three': v[2]})