인프런 커뮤니티 질문&답변

눈물의초보님의 프로필 이미지
눈물의초보

작성한 질문수

프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)

File Wirte(2-2)

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

작성

·

462

0

 

 

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

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

답변 4

0

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

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

 

 

 

0

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

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]})
눈물의초보님의 프로필 이미지
눈물의초보

작성한 질문수

질문하기