[Python] Eval() eval(문자열) 매개 변수로 받은 식을 문자열로 받아서 실행하는 함수 eval('1+2+3+4') 10 f 포맷팅도 가능하다. a = 2 eval(f"a+3") 5 사용자에게 input을 받아서 그 식을 계산하는 방식으로 많이 사용된다. 다음은 eval의 다양한 사용법이다. eval("len[1,2,3,4]") 4 eval("round(1.5)") 2 eval() 함수는 표현식을 그대로 실행하는 것이기때문에, 보안에 취약하다. 또한 코드의 가독성을 떨어트리고 디버깅을 어렵게 만들 수도 있기 때문에 사용을 권장하진 않는다고 한다.
[Python] 리스트 합치기 1. + 를 사용해서 리스트 합치기 a = [1,2,3,4] b = [5,6,7,8] c = a+b print(c) [1,2,3,4,5,6,7,8] 2. extend() a = [1,2,3,4] b = [5,6,7,8] a.extend(b) [1,2,3,4,5,6,7,8] 3. 2차원 리스트 합치기 sum 함수를 이용해서 쉽게 합칠 수 있음 lst = [[1,2],[3,4],[5,6]] print(sum(lst,[])) [1,2,3,4,5,6] +) for문을 사용해서 2차원 리스트의 요소 꺼내기 in 앞에 변수 두 개를 지정해주면 리스트에서 요소 두개를 꺼내온다. lst = [[1,2],[3,4],[5,6]] for x, y in lst: print(x,y) 1 2 3 4..
[Python] enumerate(), range() 1. enumerate 순서가 있는 자료형(List, Set, Tuple, Dictionary, String)을 입력으로 받아 인덱스 값을 포함하는객체를 돌려준다. for문과 함께 사용하면 자료형의 index를 알 수 있다. for idx, e in enumerate(['a','b','c']): print(idx, e) 0 a 1 b 2 c 2. range() 연속된 숫자를 만들어주는 함수 range(1, 11) ==> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 for문에서 많이 사용된다. for num in range(2, 5): print(num) 2 3 4 범위의 증가와 감소도 가능하다. for num in (2, 10, 2): pri..
[Python] 문자열 찾기 파이썬에서 문자열의 위치와 문자열이 특정 문자로 시작하거나 끝나는지 특정 문자가 문자열에 속해있는지 아닌지를 파이썬 함수를 통해서 찾아보자. 1. 문자열의 위치 반환 1-1. find() 문자열의 왼쪽에서부터 문자를 찾는다. 못찾으면 -1 을 반환한다. english = "abcdefg" english.find('a') 0 2-1. rfind() 문자열에서 중복된 문자가 있으면, 문자열 중 가장 끝에 있는 위치를 반환한다. 못찾으면 -1을 반환한다. english = "aaabcdefg" english.find('a') 2 2. 문자열의 시작과 끝 2-1. startswith() 문자열/튜플이 특정 문자로 시작하는지 알려준다. True/False로 반환한다. a = "hell..
[Flask] 외부에서 접속하기 app.run()안에 바인딩될 호스트 정보를 넣어주면 됨 app.run(host='0.0.0.0') 포트 정보 또한 입력이 가능하다. default는 5000 app.run(host='0.0.0.0', port=8080) 디버깅(debug) 모드로 사용도 가능함 디버깅모드를 통해서 코드를 수정하고 새로고침하면 바로 반영된다. app.run(debug=True)
[Pymysql] 파라미터 전달 사용자의 입력값을 받아서 select 절이나 where 절에 사용하고 싶을 때, pymysql에선 %s를 이용하여 파라미터를 전달한다. 나같은 경우엔 로그인 정보가 맞는지 대조하기위해 사용 플라스크에서 request.form 이용해 클라이언트의 입력값를 서버로 받아온다. if request.method == 'POST': username = request.form['id'] password = request.form['pwd'] 그 후 db를 연결 한후 cursor로 값을 조회 cursor.execute에서 query와 변수를 넣는다 with db.cursor() as cursor: sql = """ SELECT idx, userid, userpwd, usermail FR..
[Flask] 메시지 플래싱 (Message Flashing) 플라스크는 플래싱 시스템을 가지고 사용자에게 피드백을 주는 간단한 방법을 제공한다. 즉, 플래싱이란 서버에서 처리하며 생긴 오류사항/처리사항을 HTML에 넘겨 줄 수 있는 기능을 말한다. 만약 사용자가 로그인 정보를 입력하지 않았을 때, 피드백을 보내고싶다고하면 다음과 같이 작성할 수 있다. 입력받은 정보의 길이가 0이라면 flash 메시지를 보내도록 한다. if len(username) == 0 or len(password) == 0: flash("ID 또는 PASSWORD를 입력하세요") return redirect('/login') HTML에선 다음과 같이 작성해준다. body 태그 안에 넣어주면 된다. {% with messages =..
[Flask] form 값 받기 (request) 페이지의 form을 주고 받기 위해 GET, POST 방식을 사용한다. 🔎 GET 클라이언트에서 서버로 정보를 요청하기 위해 사용되는 메서드 🔎 POST 클라이언트에서 서버로 데이터를 보낼 때 사용되는 메서드 Flask는 templates라는 폴더를 통해 Html과 연동하여 동작한다. HTML 코드를 아래와 같이 작성하면 Flask에서는 사용자의 Input 값을 다음과 같이 받아온다. @app.route('/login_proc', methods=['GET', 'POST']) def login_proc(): if request.method == 'POST': username = request.form['id'] password = request.form['..
[Python] OS Python의 OS 모듈은 운영 체제와 상호 작용 하기 위한 다양한 기능을 제공하는 모듈이다. 파일 및 디렉토리 관리, 프로세스 제어, 환경 변수 액세스 등과 같은 운영 체제 수준의 작업을 수행할 수 있다. 먼저 모듈을 import 하자 import os 1. 디렉토리 관리 디렉토리 생성 os.mkdir("new_directory") 디렉토리 내용 확인 contents = os.listdir(".") print(contents) 현재 작업 디렉토리 확인 current_dir = os.getcwd() print(current_dir) 작업 디렉토리 변경 os.chdir("new_directory") updated_dir = os.getcwd() print(updated_dir) 디렉토..
[Python] Datetime 파이썬을 사용하여 데이터 분석을 하면 날짜&시간 데이터를 처리해야 하는 경우가 많다. 파이썬의 Datetime 모듈을 사용하면 날짜 및 시간을 생성, 조작 및 비교가 가능하다. Datetime 모듈의 간단한 사용법은 다음과 같다. 우선 datetime 모듈을 사용하기위해 import 해준다. from datetime import datetime, timedelta 1. 날짜와 시간 생성하기 datetime 클래스를 사용하여 현재 날짜와 시간을 가져온다. now = datetime.now() print(now) #2023-07-05 17:32:25.476787 날짜와 시간을 생성한다. date = datetime.date(2023, 7, 5) print(date) #2023..
[Python] 시간 지난 파일 자동 삭제 파이썬 OS 모듈을 사용해서 시간이 지난 파일을 자동 삭제하는 코드 예제 🔎OS 모듈 OS에 의존하는 다양한 기능을 제공하는 모듈 파일이나 디렉토리 조작이 가능하다. 아래는 OS 모듈을 사용해 30일이 지난 파일을 삭제하는 코드다. import os import time # 삭제할 디렉토리 경로 directory = "/path/to/directory" # 현재 시간 구하기 current_time = time.time() # 디렉토리 내의 파일 목록 확인 for filename in os.listdir(directory): file_path = os.path.join(directory, filename) # 파일인지 확인 if os.path.isfile(file..