파이썬 Python/파이썬
[5일차 / 파이썬] 람다, 파일 읽기
하나비 HANABI
2022. 12. 30. 18:25
람다
x = lambda a : a**2
print(x(5))
def x(a):
return a**2
x(5)
'''
25
25
'''
파일 읽기 - open(), readlines(), close()
file = open('./data/Abc1115.txt', 'r')
lines = file.readlines()
file.close()
print(type(lines))
print(len(lines))
print(lines[0])
print(lines[:10]) # 앞에서부터 10개 꺼내기
for line in lines[:5]:
print(line)
print('-'*30)
for line in lines[:5]:
print(line[:-1]) #맨 끝의 \n 제외하고 붙여서 출력
'''
<class 'list'>
1000
990001addx 17 29 16 49 43154CAC
['990001addx 17 29 16 49 43154CAC\n', '990002stch 30 9 48 25 81193CAA\n', '990003gali 93 60 6 84 36279ACA\n', '990004miat 73 22 48 24 72239BCC\n', '990005oran 33 38 59 58 28216CBA\n', '990006sj24 27 65 54 77 33256BAA\n', '990007kor2 33 85 98 60 66342ABA\n', '990008vsky 41 5 99 14 67226CAC\n', '990009kimd 74 4 1 33 53165BCA\n', '990010blue 55 84 50 89 37315ABA\n']
990001addx 17 29 16 49 43154CAC
990002stch 30 9 48 25 81193CAA
990003gali 93 60 6 84 36279ACA
990004miat 73 22 48 24 72239BCC
990005oran 33 38 59 58 28216CBA
------------------------------
990001addx 17 29 16 49 43154CAC
990002stch 30 9 48 25 81193CAA
990003gali 93 60 6 84 36279ACA
990004miat 73 22 48 24 72239BCC
990005oran 33 38 59 58 28216CBA
'''
★ ★ ★ ★ ★ 파일을 읽고 모든 라인을 출력하는 코드 ★ ★ ★ ★ ★
1. 파일 오픈하여 데이터 받아오기
2. 모든 정보가 string으로 담겨있으므로 숫자는 int로 바꾸기
- 먼저 학생별 -> 카테고리별로 분리해서, 인덱스 활용하여 타입변환
3. 타입변환 후 다시 한 리스트에 다 담기 ex. [ [학생1 정보], [학생2 정보]... ]
필요한 리스트
- 가공 전의 모든 데이터 리스트, 학생1의 데이터 리스트 (정보들이 다 string 타입의 하나로 묶여있는 상태),
학생1의 데이터를 카테고리별로 분리해서 담은 리스트(각 카테고리별로 인덱스가 생김 -> 활용해서 int로 변환),
가공 후의 모든 데이터를 담을 리스트.
#Abc1115.csv파일을 읽고 모든 라인을 출력하는 코드 - 전처리
# 파일 오픈
file = open('./data/Abc1115.csv')
lines = file.readlines()
file.close()
# 전처리 방법
data=[]
for line in lines:
line = line[:-1] # 한 학생의 모든 정보 (가공 전)
temp = line.split(',') # ,를 기준으로 데이터를 분리하여 리스트에 담기
for i in range(8): # string -> int
if i!=1: # 인덱스 0~8 중 1만빼고 다 int로 형변환해야
temp[i] = int(temp[i])
data.append(temp) # 가공 후의 학생 정보를 하나의 리스트에
print(data)
'''
[[990001, 'addx', 17, 29, 16, 49, 43, 154, 'C', 'A', 'C'],
[990002, 'stch', 30, 9, 48, 25, 81, 193, 'C', 'A', 'A'],
.
.
.
'''