19.csv파일읽기쓰기
csv 파일 읽기, 쓰기
- import csv
import csv
with open('./resource/data_sample1.csv', 'r') as fp:
reader = csv.reader(fp)
print(reader)
print(type(reader))
<_csv.reader object at 0x0000015F937C0100>
<class '_csv.reader'>
import csv
with open('./resource/data_sample1.csv', 'r') as fp:
reader = csv.reader(fp)
print(dir(reader))
iter 가 있으면 반복문 처리가 가능하다
['__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__lt__', '__ne__', '__new__', '__next__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'dialect', 'line_num']
import csv
with open('./resource/data_sample1.csv', 'r') as fp:
reader = csv.reader(fp)
next(reader)# 1행을 스킵해준다-1행은 보통 목록
for content in reader:
print(content)
['1', '김정수', '2017-01-19 11:30', '25']
['2', '김진혜', '2017-01-19 11:30', '26']
['3', '고유정', '2017-02-22 14:09', '27']
['4', '김은향', '2017-04-01 18:00', '22']
['5', '이준수', '2017-05-14 22:33', '27']
['6', '온지수', '2017-01-11 6:04', '30']
['7', '홍길동', '2017-02-08 7:44', '31']
['8', '강백호', '2017-01-19 11:30', '32']
['9', '주은명', '2017-01-19 11:30', '33']
['10', '김수진', '2017-01-19 11:30', '34']
['11', '박진형', '2017-02-07 10:22', '35']
['12', '정순미', '2017-01-22 9:10', '33']
['13', '김정현', '2017-02-22 14:09', '45']
['14', '홍미진', '2017-04-01 18:00', '17']
['15', '김순철', '2017-05-14 22:33', '22']
['16', '이동철', '2017-03-01 23:44', '27']
['17', '박지숙', '2017-01-11 6:04', '30']
['18', '김은미', '2017-02-08 7:44', '51']
['19', '장혁철', '2017-12-01 13:01', '16']
import csv
with open('./resource/data_sample2.csv', 'r') as fp:
reader = csv.reader(fp, delimiter='|')
next(reader)
for content in reader:
print(content)
delimiter =’|’ : 구분자를 ‘ㅣ’를 없애준다
['1', '김정수', '2017-01-19 11:30:00', '25']
['2', '박민구', '2017-02-07 10:22:00', '35']
['3', '정순미', '2017-01-22 09:10:00', '33']
['4', '김정현', '2017-02-22 14:09:00', '45']
['5', '홍미진', '2017-04-01 18:00:00', '17']
['6', '김순철', '2017-05-14 22:33:07', '22']
['7', '이동철', '2017-03-01 23:44:45', '27']
['8', '박지숙', '2017-01-11 06:04:18', '30']
['9', '김은미', '2017-02-08 07:44:33', '51']
['10', '장혁철', '2017-12-01 13:01:11', '16']
디렉터리 변환
with open('./resource/data_sample1.csv', 'r') as fp:
reader = csv.DictReader(fp)
for content in reader:
for key, value in content.items(): #키와 벨류 출력
print(key, value)
print('----------------')
DictReader(key,value 형태로 변환
No. 1
이름 김정수
가입일시 2017-01-19 11:30
나이 25
----------------
No. 2
이름 김진혜
가입일시 2017-01-19 11:30
나이 26
----------------
No. 3
이름 고유정
가입일시 2017-02-22 14:09
나이 27
----------------
No. 4
이름 김은향
가입일시 2017-04-01 18:00
나이 22
----------------
No. 5
이름 이준수
가입일시 2017-05-14 22:33
나이 27
----------------
No. 6
이름 온지수
가입일시 2017-01-11 6:04
나이 30
----------------
No. 7
이름 홍길동
가입일시 2017-02-08 7:44
나이 31
----------------
No. 8
이름 강백호
가입일시 2017-01-19 11:30
나이 32
----------------
No. 9
이름 주은명
가입일시 2017-01-19 11:30
나이 33
----------------
No. 10
이름 김수진
가입일시 2017-01-19 11:30
나이 34
----------------
No. 11
이름 박진형
가입일시 2017-02-07 10:22
나이 35
----------------
No. 12
이름 정순미
가입일시 2017-01-22 9:10
나이 33
----------------
No. 13
이름 김정현
가입일시 2017-02-22 14:09
나이 45
----------------
No. 14
이름 홍미진
가입일시 2017-04-01 18:00
나이 17
----------------
No. 15
이름 김순철
가입일시 2017-05-14 22:33
나이 22
----------------
No. 16
이름 이동철
가입일시 2017-03-01 23:44
나이 27
----------------
No. 17
이름 박지숙
가입일시 2017-01-11 6:04
나이 30
----------------
No. 18
이름 김은미
가입일시 2017-02-08 7:44
나이 51
----------------
No. 19
이름 장혁철
가입일시 2017-12-01 13:01
나이 16
----------------
cvs쓰기
data = [
[100, 200, 300],
[100, 200, 300],
[100, 200, 300],
[100, 200, 300]
]
with open('./resource/data_sample3.csv', 'w', newline='') as fp:
wt = csv.writer(fp)
wt.writerows(data)
newline’‘-줄바꿈 처리를 안함
with open('./resource/data_sample4.csv','w', newline='') as fp:
wt = csv.writer(fp)#검증이 끝난 데이터인 경우 한번에 처리
wt.writerows(data)#한번에 쓰기
댓글남기기