Python 95

파이썬 (45) 간단 프로젝트

45가지 파이썬 예제의 마지막 프로젝트는 사람의 이름과 전화번호를 저장한 json 파일을 다뤄본다 다뤄볼 json 파일은 위와 같다각 인원별로 ID를 부여받아 Key로 사용하고, 이름과 번호가 연결된 딕셔너리를 Value로 사용한다 1) 전화번호 출력def list_phonebook(): f = open('Target.json', 'r') d = json.load(f) for pid in d: print('\nPID:', int(pid) + 1) for p_info in d[pid]: print(p_info + ':', d[pid][p_info]) f.close() 함수 list_phonebook에서는 json 파일을 읽기 모드로 가져와 ..

파이썬 (44) 파일 읽기 & 쓰기 고급

이번에는 파일 읽기와 파일 쓰기를 활용한 고급 예제를 수행해본다예제는 다음과 같다while문을 통해 무한 반복하며파일을 읽어들이되, 한줄씩 읽어와서 출력하고파일을 쓰되, 이어서 작성하고무한반복문을 탈출할 수 있도록 기능을 추가해야 한다 이때 파일에 대한 여러가지 모드를 적용하여 사용할 수 있다 위와 같이 파일에 대한 여러가지 모드를 설정할 수 있는데,이중에서 필요한 것은 a모드와 r 모드 그리고 이 둘을 혼합한 + 모드가 된다 - 코드filepath = './TargetFolder_03/res.txt'intro = "Select a menu number : "file = open(filepath, 'a+')while True: print("--------------------------") p..

파이썬 (43) 폴더 재귀 조회

이번 포스트에서는 폴더에 존재하는 파일들을 가져오되, 파일안에 파일이 존재하는 재귀적 구조에서 가져온다 위와 같은 폴더 구조에서 txt 파일과 png 파일을 가져와 배열에 저장하고 개수를 반환하면 된다 1) os 모듈의 walk 메서드 사용import osdef findFilesWithSubFolder(filepath): txtList = [] pngList = [] if os.path.exists(filepath): for root, subfolder, files in os.walk(filepath): for file in files: if ".txt" in file or ".TXT" in file: ..

파이썬 (42) 파일 확장자 체크

이번 포스트에서는 폴더에 저장된 파일들에서 특정한 확장자를 지닌 파일들만을 체크하는 예제를 알아본다 위와 같은 폴더에서 .py 확장자와 .png 확장자를 지닌 파일들을 모아서 출력한다 1) os 모듈만을 사용import osdef defineFileExtensionName(filepath): pngList = [] pyList = [] if os.path.exists(filepath): for file in os.listdir(filepath): if ".py" in file or ".PY" in file: pyList.append(file) elif ".png" in file or ".PNG" in file:..

파이썬 (41) 텍스트 파일 필터링

이번에 수행하는 예제는 외부 파일을 읽어오고읽어온 파일에서 대문자 C로 시작하는 행의 2번째 열을 전부 합한 값을 반환하는 것이다Russia,17075200Canada,9984670United States of America,9826630China,1385566537Brazil,200361925Australia,23342553India,1252139596Argentina,41446246Kazakhstan,16440586Algeria,39208194... 파일은 위와 같이 구성되어 있다 - 스크립트import osdef readText(filepath): ret = 0 if os.path.exists(filepath): with open(f"{filepath}", 'r') as f:..

파이썬 (40) 비밀번호 체크

이번의 예제는 사용자로부터 비밀번호를 입력받아 조건에 따라 판단하는 예제이다조건은 다음과 같다1) 비밀번호는 8자 이상이어야 한다2) 최소 하나의 영어 대문자를 포함해야 한다3) 최소 하나의 숫자를 포함해야 한다 - 코드while(True): pw = input() res = [] if not any(i.isdigit() for i in pw): res.append("최소 하나의 숫자가 포함되야 합니다") if not any(i.isupper() for i in pw): res.append("최소 하나의 대문자가 포함되야 합니다") if len(pw) 문자에서 isdigit 함수를 통해 숫자인지를 판단하고 isupper 함수를 통해 문자인지를 판단할 ..

파이썬 (39) 쿠폰 코드 생성

이번에는 random 모듈의 사용법을 알아본다예제는 다음과 같다characters = "abcdefghijklmnopqrstuvwxyz01234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()?" 위의 문자열에서 중복없이 무작위 문자 6개를 골라 하나의 코드를 만들고해당 코드로 구성된 리스트를 반환하면 된다 - 코드import randomdef genCode(n): code_list = [] random.seed(None) while len(code_list) != n: chosen = random.sample(characters, 6) code = "".join(chosen) if code not in code_list: ..

파이썬 (38) 날짜 및 시간 포맷팅

파이썬에서 시간을 다루는 시간 포맷팅에 대해서 알아본다시간 포맷팅은 strftime 함수로 사용할 수 있다 1) 현재 지역의 시간대 출력from datetime import datetime, timezoneprint(datetime.now(timezone.utc)) 현재 지역의 시간대를 알고 싶다면 datetime 모듈의 함수 now를 통해 알 수 있다실행 결과는 다음과 같다 2) 시간 포맷팅 - 연도 / 월 / 일 / 시 / 분 / 초from datetime import datetime, timezoneprint(datetime.now().strftime('%Y-%m-%d %H:%M:%S')) 연도 / 월 / 일 / 시 / 분 / 초를 포맷팅하여 출력한다실행 결과는 다음과 같다 3) 시간 포맷팅 - 연..

파이썬 (37) 딕셔너리 조회

딕셔너리를 조회하는 방법을 예제를 통해 알아본다예제는 다음과 같다d = {'USA' : 36, 'Germany' : 17, 'France' : 32, 'Australia' : 77, 'South Africa' : 99, 'India' : 108, 'South Korea' : 200} 위와 같이 존재하는 딕셔너리에서 사용자의 입력을 받아 해당하는 데이터를 출력한다 - 코드def findWithKey(): dict = {key.upper(): data for key, data in d.items()} word = input() if word.upper() in dict.keys(): print(dict[word.upper()]) else: print('No re..

파이썬 (36) 실행 타임 딜레이 2

이번에도 로직의 실행에 딜레이를 주는 방법을 알아본다예제는 다음과 같다시작과 끝의 2개의 수를 입력받고 0.5씩 증가시키면서 딜레이를 준다 - 코드import timeimport numpydef sleepBy(start, end): for i in numpy.arange(start + 0.5, end + 0.5, 0.5): print(f'Delayed for {i} seconds') time.sleep(i)sleepBy(0, 3) 딜레이를 주기 위한 sleep 함수를 사용하기 위해 time 모듈을 프로젝트에 추가하였다그리고 실수가 저장된 시퀀스 자료형을 반복하기 위해 numpy 모듈을 추가하고 arrange 함수를 사용한다실행 결과는 다음과 같다