#원래는 max()함수
a = [38,21,53,62,19]
max(a)
a = [38,21,53,62,19]
temp = a[0]
for i in a :
if temp <= i :
temp = i
print(temp)
38
53
62
#알고리즘의 초석이 되는 비교란
[식 for 변수 in list]
# 0부터 9까지 숫자를 생성하여 리스트 생성
[x for x in range(1,10)]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[x for x in range(1,10) if x%2 ==0]
[2, 4, 6, 8]
1) open()
변수명 = open("파일이름",파일모드(w,r,bw,br)
변수명.write("저장할 내용")
변수명.close()
close로 꼭 파일을 닫아 주어야함
만든 파일 읽어오기 옵션만 w => r
변수1 = open("읽어올 파일명", 'r')
변수2 = 변수1.read()
변수1.close()
file = open('test.txt','w')
file.write('파일 만들기 연습입니다.')
file.close()
with문 이용
with open('test_with.text','w') as file3:
file3.write("파일 만들기 연습2")
with open('test_with.text','r') as file4:
my_file2 = file4.read()
print(my_file2)
hotels.com에서 크롤링한 데이터들을 읽어온다.
with open('/content/drive/MyDrive/hotels_info.csv', 'r' ) as test_file:
my_read_file = test_file.readlines()
print(my_read_file)
hotelId,hotelName,tripType,tripTypeText,reviewDate,rating,description,isKorNot\n',
',서울 웨스틴조선호텔 (....
',서울 웨스틴조선호텔 (...
대략 이런식으로 나와있다
list 형식으로 바뀌었는데 이걸 리뷰만 긁어오고싶다~
그럼 어떻게 해야하느냐?
for문을 이용하면 리스트가 풀리는데 이 부분을 split을 이용해서 콤마로 나누어 주고 / 그 안에서 다시 잡힌 리스트 내에서 추출해주고 싶은 인덱스를 반복해서 추출해주면 된다.
Detail Logic
사용자 리뷰 - 호텔이름, 여행종류, 평점,리뷰글.split(’,’)
all_reviews = []
for reviews in data:
temp = review.split(’,’) - 호텔 정보가 담긴 list
temp2 = temp[7]
all_reviews.append(temp2)
with open ('/content/drive/MyDrive/서울특별시_관광지입장정보_2011_2016.json','r') as file :
dict_list = file.read()
tour_info = []
for i in dict_list:
for_num = i.get('ForNum',0)
gun_name = i.get('gungu','unknown')
res_num = i.get('resNm',0 )
acd_num = i.get('addrCd',0)
r_num = i.get('rnum')
sido_name=i.get('sido','unknown')
day_num = i.get('yyyymm',0)
Nat_num = i.get('NatNum',0)
tour_info.append([for_num,gun_name,res_num,acd_num,r_num,sido_name,day_num,Nat_num])
for문으로 돌면서~ get을 넣어준다 만약 get을해서 없으면 0을 반환하고 있으면 값을 가져와주는 함수
그것을 다시 딕셔너리로 묶어주려면
tour_info2= []
#for_num,gun_name,res_num,acd_num,r_num,sido_name,day_num,Nat_num
for i in tour_info:
create_dict = dict(외국인수=i[0],시군구명=i[1],관광지명=i[2],관리번호=i[3],관리번호2=[4],시도명=i[5],일자=i[6],나라번호=i[7])
tour_info.append({for_num,gun_name,res_num,acd_num,r_num,sido_name,day_num,Nat_num})
tour_info2.append(create_dict)
완성이다
오늘 내용 요약하자면 리스트 연산함수 / 읽기 쓰기 with문 / 리스트 컴프리헨션 / 딕셔너리 언패킹 패킹 등이다.
#호텔 정보 크롤링을 한 파일이 list로 담겼을 때 어떻게 반복문으로 분해를 시켜주느냐
with open('/content/drive/MyDrive/hotels_info.csv', 'r' ) as test_file:
my_read_file = test_file.readlines()
print(my_read_file)
point_list = []
for i in my_read_file[1:]:
text = i.split(',')
review_point = text[6]
point_list.append(review_point)
for문과 split을 적절히 사용하는 방법을 잘 익혀두기 위해 리마인드차 적어놓았다 아주 훌륭한 방법