전체 글 70

[파이썬] 폴더(디렉토리)에 있는 파일들을 리스트(List)로 저장

폴더에 있는 파일들을 리스트로 저장하는 방법이다. listdir() 함수 인자로 폴더 경로를 넣으면 해당 폴더에 있는 파일명들을 리스트로 저장한다. ./ 는 상대경로인데 vscode는 폴더 열기로 선택한 폴더를 현재 위치로 인식한다. 즉, 바로 아래 그림 왼쪽에 표시된 것처럼 현재 내가 PYTHON이라는 폴더를 열어서 작업을 하고 있기 때문에 현재 위치는 PYTHON이라는 폴더이다. 그래서 ./ 는 PYTHON 폴더라는 의미이다.

[파이썬] vscode에서 파이썬 버전 삭제했거나 path 변경했는데 에러 나는 경우 해결 방법

예전에 겪은 일인데, 파이썬 3.8을 사용해야하는데, 이전에 3.10 버전을 설치했어서 path 경로를 바꾸거나 3.10 버전을 삭제했는데도 계속 3.10 버전 방식으로 됐었다. 이해가 가지 않아서 찾아보니 vscode 화면에서 아랫줄에 보면 파이썬 인터프리터 버전이 나와있는데, 저걸 클릭하면 2번째 그림처럼 나온다. 여기서 자기가 사용하려는 버전을 클릭해서 변경해야하는데, 여기서 어이가 없는게 다른 버전을 삭제했어도 2번째 그림의 목록에는 삭제한 버전이 남아있다. 삭제한 버전을 클릭하면 목록에서 없어지더라...ㅡㅡ 나는 삭제하면 남아있는 버전으로 자동으로 변경되는 줄 알았는데, 변경되지 않고 그대로 남아있었다.. 이것 때문에 시간을 많이 날렸었다..ㅜ

[파이썬] 문자열 일부 파싱하기

다음과 같이 사용하면 문자열 일부를 파싱할 수 있다. [시작위치 : 끝위치] 이런 식으로 사용이 가능한데, 끝위치 인덱스 앞까지 출력된다. 예를 들어 123을 출력하고 싶으면 [0:2] 가 아니라 [0:3] 으로 해야한다. 끝위치 인덱스 값만 주의하면 된다. 음수 값을 활용해서 출력하는 것도 가능하다. 예를 들어 56을 출력하고 싶으면 [4:6]를 해도 되지만 [-2:] 또는 [-2:6]를 해도 된다. 음수로 하면 맨 끝자리 인덱스부터 -1,-2,-3, ... 으로 거꾸로 하면 된다.

[파이썬] 로그 파일 간단하게 만들기

아래 코드에서 setLevel 부분에서 ERROR(로그 레벨에 설명 있음)는 ERROR을 사용하거나 자기가 원하는 코드로 바꾸고, 로그 파일이 생성될 때 시간을 알기 위해 datetime.now()를 사용하고 FileHandler 부분에 경로명과 원하는 날짜 형식과 인코딩 형식을 정해서 사용하면 된다. 1 2 3 4 5 6 7 8 9 10 11 12 import logging from datetime import datetime d = datetime.now() # 현재 년월일 logger = logging.getLogger() logger.setLevel(logging.ERROR) formatter = logging.Formatter('%(asctime)s %(name)s %(levelname)s %(..

[파이썬] shutil으로 파일 이동, 복사하기

shutil.move() 를 사용해서 파일을 옮길 수 있는데, 1번째 인자에는 경로명과 파일명까지 있는 문자열을 넣으면 되고 2번째 인자에는 폴더 경로를 문자열로 넣으면 된다. 만약 이동할 폴더 안에 같은 파일명이 존재하면 에러가 나니까 파일을 삭제하는 코드를 먼저 실행하고 해당 코드를 실행하는 방식으로 코드를 짜면 된다. 비슷한 함수로 shutil.move 말고 shutil.copy도 있는데 copy는 같은 파일명이 있어도 실행된다. 그리고 copy는 (당연한거지만)현재 위치에 파일이 그대로 남아 있고 이동할 폴더에 파일이 생성되는 방식이다.

[파이썬] 판다스(Pandas) 사용해서 csv 파일 생성하기

판다스를 사용해서 csv를 생성해보자. 1번째 그림처럼 코드를 사용하면 된다. to_csv 함수에서 encoding 부분은 가지고 오는 데이터에 따라 값을 다르게 해줘야하는데, 공공데이터인 경우 euc-kr 인 경우가 많다. 이 코드의 경우는 굳이 상관없는데, 인코딩이 다른 경우 한글 데이터면 깨져서 나오는 경우가 있으니 주의 해야 한다. DataFrame에서 list_all 위치에는 2차원 리스트를 넣으면 되고, columns = 다음에 1차원 리스트를 넣으면 된다. set_index에는 1번째 열 값을 넣으면 되는데, 저 함수를 넣고 실행하면 아래 사진처럼 나오고, 넣지 않으면 마지막 그림처럼 나온다. to_csv 함수에는 [저장할 폴더 경로명]/[파일명].csv 로 하면 된다. 절대경로, 상대경로 ..

카테고리 없음 2022.12.01

[파이썬] open API로 xml 데이터 출력하기

프로젝트를 하면서 open API를 활용해서 xml로 된 데이터를 가져오는 작업을 했는데, json에 비해 상당히 번거로웠다. 웬만하면 json으로 하는게 나은거 같다. 아래 코드에서 url명에만 url을 넣어서 사용하면 데이터가 출력된다. (url은 사용하고 캡처 할 때만 url명으로 수정했습니다) 여기서 이제 필요한 데이터를 사용하려면 그림에 표시된 이름을 잘 활용해야한다. 예를 들어 '항목' 에 있는 주기 1999인 371.2 값을 출력하고 싶으면 이런 방식으로 활용하면 된다. xml과 관련된 함수는 find, findAll, get 등이 있는데, 이 3개를 주로 사용했다. get 함수를 이용해서 '열' 이라고 표시 되어 있는 것들을 findAll해서 1번째 '열'의 key 값인 주기를 활용해서 출..

[파이썬] open API로 json 데이터 출력하기

파이썬에서 open API로 데이터를 가져와서 csv 파일로 생성하는 작업을 했다. 아래 그림의 코드에서 url 변수에 url 값만 넣어서 사용하면 간단하다.(url 넣어서 실행하고 url명이라고 바꿨습니다.) 대괄호([ 데이터 ]) 로 되어 있으면 List(리스트) 이고, 중괄호({ 데이터 })로 되어 있으면 Dictionary(딕셔너리)이다. 출력해보면 리스트 안에 딕셔너리가 여러 개 있는 형식으로 되어 있기 때문에 1번째 데이터의 '경제성장률(시도)'가 필요하면 contents[0]['TBL_NM] 이런 식으로 사용하면 된다. 필요한 데이터를 TBL_NM 같은 key 값을 넣어서 찾는 방식으로 하는 것이다. for 문을 활용하면 전체 데이터도 출력해서 활용할 수 있다.

[오라클] null 조인하면 조인이 되지 않는다

실행 결과로 STD_YR가 null인 행은 조인되지 않는다. STD_YR가 null인 행은 조인되지 않는다. 특정 컬럼을 조인 조건으로 할 때 그 컬럼 값 중에 null이 있는지 먼저 확인해서 데이터 누락이 생기지 않게 한다. 만약 null 값이 있으면 NVL 함수 같은 걸로 null 값 대신 다른 값으로 대체 하는 방법이 있다. NVL(컬럼,0) = NVL(컬럼,0) 이런 식으로 처리한다. NVL(컬럼명,0) : 컬럼명의 값이 NULL이면 0으로 대체한다. -> 컬럼값 자체가 바뀌는 것은 아니다.