728x90
반응형

파이썬 CSV 모듈 쓰기, 읽기, 수정

 

안녕하세요 :-)

파이썬에서 csv 파일에 쓰고, 읽고, 수정(추가)하는 방법입니다.

파이썬 언어로는 주로 데이터를 다룰 텐데 도출된 데이터 혹은 중간 데이터를 엑셀 또는 csv 파일로 내보내는 것이 필요할 때가 있습니다.
파이썬에는 csv 모듈이 있어서 간단하게 구현이 가능합니다.

참고로 CSV란 Comma Separated Values로 '쉼표로 구분된 값'이라는 뜻입니다. 

 

1. 파일 읽기

import csv
with open('filename.csv', 'r', newline='', encoding='utf-8-sig') as csv_file:
    reader = csv.reader(csv_file, delimiter=',', quotechar='"')
    for row in reader:
        print(", ".join(row))

#1 csv 모듈을 import 합니다.
#2 csv_file 이름으로 'filename.csv' 파일을 'r' 옵션으로 읽습니다.
#3 reader라는 객체로 한줄 한 줄 읽어옵니다.
#4 각 행은 문자열 리스트로 반환됩니다.

 

2. 파일 쓰기

import csv
header = ['first', 'second', 'third']
with open('filename.csv', 'w', newline='') as csv_file:
    writer = csv.writer(csv_file, delimiter=',', quotechar='"')
    writer.writerow(header)
    writer.writerow(['first value', 'second value', 'third value'])

#1 csv 모듈을 import 합니다.
#2 header를 정의합니다.
#3 csv_file 이름으로 'filename.csv' 파일을 'w' 옵션으로 씁니다.
#4 writer라는 객체를 생성합니다.
#5 writerow를 통해 헤더를 쓰고, 아래줄에 넣을 값을 입력합니다.

 

3. 파일 수정

파일 수정은 간단합니다. 'r', 'w' 옵션 자리에 'a'를 넣으면 append의 개념으로 아래 줄에 추가가 됩니다.

 

그럼 궁금한게 있다면 아래 댓글로 남겨주세요!

이만 :)

728x90
반응형
728x90
반응형

Python 이중 어레이 초기화

 

1. 지능형 리스트로 표현

>>> board = [['_'] * 3 for _ in range(3)]
>>> board
[['_', '_', '_'], ['_', '_', '_'], ['_', '_', '_']]

>>> board[1][2] = 'X'
>>> board
[['_', '_', '_'], ['_', '_', 'X'], ['_', '_', '_']]

 

2. 잘못된 표현

- 동일한 리스트에 대한 세 개의 참조를 가진 리스트는 잘못된 리스트입니다.

>>> wrong_board = [['_'] * 3] * 3
>>> wrong_board
[['_', '_', '_'], ['_', '_', '_'], ['_', '_', '_']]

>>> wrong_board[1][2] = 'X'
>>> wrong_board
[['_', '_', 'X'], ['_', '_', 'X'], ['_', '_', 'X']]

  - 즉, 이렇게 코드를 작성한다면 최상위 리스트가 동일한 내부 리스트에 대한 참조를 세 개 가지게 되어
  - 세 개의 행이 모두 동일한 객체를 참조하게 된다.

 

참고) 한빛미디어 '전문가를 위한 파이썬'

728x90
반응형
728x90
반응형

라인플러스 2019 상반기 인턴 채용 코딩테스트 

 

문제 해설 링크

 

2019년 상반기 LINE 인턴 채용 코딩테스트 문제 해설 - LINE ENGINEERING

LINE에서 개발 직군을 뽑을 때 신입이든 경력이든 가장 먼저 보는 것이 코딩 테스트입니다. LINE의 코딩 테스트는 일반적인 알고리즘 경진대회와는 경향이 조금 다른데요. 알고리즘 경진대회는 1��

engineering.linecorp.com

 

from collections import deque
def solution(conyPosition, brownPosition):
    time = 0
    visit = [[0]*2 for _ in range(200001)]
    q = deque()
    q.append((brownPosition, 0))
    
    while 1:
        conyPosition += time
        if conyPosition > 200000 or conyPosition < 0:
            return -1
        if visit[conyPosition][time%2]:
            return time
        for i in range(0, len(q)):
            current = q.popleft()
            currentPosition = current[0]
            newTime = (current[1]+1)%2
            
            newPosition = currentPosition - 1
            if newPosition >= 0 and not visit[newPosition][newTime]:
                visit[newPosition][newTime] = True
                q.append((newPosition, newTime))
            newPosition  = currentPosition + 1
            if newPosition < 200001 and not visit[newPosition][newTime]:
                visit[newPosition][newTime] = True
                q.append((newPosition, newTime))
            newPosition = currentPosition * 2
            if newPosition < 200001 and not visit[newPosition][newTime]:
                visit[newPosition][newTime] = True
                q.append((newPosition, newTime))
        time += 1
728x90
반응형
728x90
반응형

하나금융티아이 코딩테스트

지난주 금요일(21일) 하나금융티아이에서 온라인 코딩테스트를 봤습니다.

 

한 3주 전쯤이었나.. 인성검사를 봤고, 코딩테스트는 이렇게 따로 보게 하더라고요!

다른 기업 코딩테스트에서 많이 떨어져서 크게 자신이 있지는 않았고, 그만큼 스스로에게 기대를 하지 않았어서 오히려 가벼운 마음으로 시험을 준비했습니다.

공부하려 노트북을 켰지만 구글링을 하게 되었고 엘리스라는 새로운 플랫폼과 MOU를 맺었다고.. 하는 걸 봐서 왠지 저 플랫폼을 사용하려나? 했는데 딱 맞게 엘리스를 쓰더라구요.

프로그래머스, 코딜리티 등등 다른 플랫폼은 봤어도 엘리스는 처음 들어봤는데 프로그래머스랑 좀 비슷하더라구요! 

 

대망의 시험 당일!

코로나의 확산으로 온라인으로 진행되었고 검색, 책 참고 등등 아무것도 안된다고 하더라구요. 그래서 화면도 공유하고 캠도 키고 시험 봤습니다. (근데... 코딩할 때 구선생님 없이 하는 사람도 있나 ㅠㅠ 구선생님 없이 하려니 좀 걱정됐음)

화면도 공유하고 캠도 켜야 하니 카페보다는 집에서 하는 게 낫겠다 싶어서 집에서 시험을 봤고 주민등록증으로 본인 확인한 후 시간이 되면 시험이 시작됩니다.

언어는 C/C++, Java, Python 이렇게만 볼 수 있었습니다! 저는 Python으로 시험을 봤고,

난이도는... 중하 정도...? 정말 이거라고..? 라며 시험 시간을 한참 남겨놓고 제출 버튼을 누르고 시험을 종료했습니다.

사실 'python 한 줄로 출력' <-- 이거 정말 생각이 안 나서 구글링 하고 싶었는데 ㅋㅋㅋㅋㅋㅋ 

결국 어찌어찌 구글링 없이 풀었어요! 아마 그래서 난이도를 좀 쉽게 낸 거 아닐까 하는 생각이 들었습니다.


 

오늘(8/28) 필기시험 결과가 나왔는데, 결과는 두구둥!!!


합! 격! 

 

와 씨ㅠㅠㅠ 면접 본다ㅠㅠㅠㅠ

벌써 막 청라에 집 알아보면서 김칫국 사발로 드링킹 하는 거 나라구 ㅠㅠㅠㅠ

요 며칠 취업 때문에 기분이 안 좋았는데 코테합해주신 하금티 🥺 감사합네다 ㅠㅠ

면접까지 화이팅 해서 후기로 돌아올게요!!

그럼 이만 :)

 


면접이 미뤄졌었죠! 25일 금요일로 ㅎㅎ

저는 전형포기하게 되었는데, 관련 포스팅을 올렸습니다!

2020/10/02 - [취업해] - [하나금융티아이 신입공채 면접] 전형 포기

 

[하나금융티아이 신입공채 면접] 전형 포기

전형 포기의 이유.. 딱 일주일 전이 하나금융티아이 신입 공채 1차 면접날이었습니다. 2020/08/29 - [취업해] - 하나금융티아이 필기시험(코딩테스트) 후기 요 글에서 볼 수 있듯이 코딩테스트 통과��

haonly.tistory.com

 

완죠니 신나가지고 들떴던 때와 달리 포기하게 됐다니 ㅠㅠ 저도 아쉽습니당.

자세한건 포스팅 확인해주세요~!

728x90
반응형

+ Recent posts