본문 바로가기

오늘도 하나씩, 쉽게 풀어봅니다.

작은 시행착오도,
다음에 꺼내 볼 수 있는 기록으로.

전체 글 104

Python venv 확인 방법: 활성화 표시보다 실행 파일과 pip 경로를 보세요

가상환경 폴더를 만들었어도 지금 실행하는 Python이 그 환경의 실행 파일인지 확인해야 합니다. sys.executable과 pip의 설치 위치를 같은 실행 파일로 확인하면 다른 Python에 패키지를 설치하는 실수를 줄일 수 있습니다. 명령줄 앞의 (.venv) 표시만으로 판단하지 마세요.Windows PowerShell에서 기존 설치된 Python 3.12.8로 새 가상환경을 만들고 pip 24.3.1의 위치를 확인했습니다. 외부 패키지 다운로드·전역 PATH·실행 정책 변경 없이 재현한 예시입니다. Python과 venv가 설치된 환경을 전제로 하며 설치 자체를 대신 다루지는 않습니다.1. Python과 Windows 실행기를 구분PowerShell을 열어 먼저 다음 명령을 확인합니다. Windo..

Git diff가 비어 있을 때: 작업 파일·스테이징·HEAD 비교를 구분하세요

파일을 저장했는데 git diff가 비어 있다고 변경이 사라진 것은 아닙니다. 기본 diff는 작업 파일과 스테이징 영역을 비교합니다. 이미 add한 변경은 git diff --staged에서 확인해야 합니다. 파일 하나도 add 뒤 다시 고치면 두 비교에 동시에 나옵니다.Windows PowerShell과 Git 2.52.0.windows.1에서 새 임시 저장소로 검증했습니다. 이 글의 실습은 기존 프로젝트·원격 저장소·사용자 전역 설정을 변경하지 않습니다. Git이 설치되어 있고 git --version이 실행되는 환경을 전제로 합니다.1. 비교하는 세 상태를 먼저 구분하기첫 도해의 왼쪽 HEAD는 마지막 커밋, 가운데 인덱스는 다음 커밋을 위해 add한 내용, 오른쪽 작업 파일은 현재 디스크에 저장..

PowerShell Get-ChildItem에서 파일만 보기와 숨김 파일 포함하기

확장자가 .log로 끝나는 폴더와 숨김 로그가 함께 있으면 이름만으로 목록을 걸러서는 원하는 결과를 얻기 어렵습니다. 파일 여부는 -File, 숨김 항목을 포함할지는 -Force로 각각 정합니다.연습용 폴더에 세 가지 상태 만들기Windows의 PowerShell 7.6.5에서 실행했습니다. 아래 코드는 임시 위치에 새 폴더를 만들고 그 안의 예제 파일 하나만 숨김으로 표시합니다. 첫 결과와 두 번째 결과를 같은 창에서 비교하세요.$p = Join-Path $env:TEMP ('jh-' + [guid]::NewGuid())New-Item -Type Directory $p | Out-NullNew-Item -Type Directory (Join-Path $p 'archive'), (Join-Path $p ..

PowerShell Select-String에서 일치한 줄 수와 전체 일치 횟수 구분하기

로그 한 줄에 ERR 코드가 두 번 나오면 검색 결과의 줄 수와 코드의 등장 횟수가 달라집니다. 오류가 포함된 줄을 추리려면 MatchInfo 개수를 세고, 코드가 나온 횟수를 세려면 각 줄의 Matches를 펼치세요.Windows PowerShell 7.6.5에서 같은 입력 비교Windows에서 PowerShell 7을 열고 아래 블록을 순서대로 붙여 넣으세요. 메모리 안의 예제 문자열만 사용합니다. 첫 줄에는 코드 두 개, 가운데 줄에는 코드가 없고, 마지막 줄에는 코드 한 개가 있습니다.$lines = 'ERR=12 ERR=34', 'OK', 'ERR=56'@($lines | Select-String 'ERR=\d+').Count$lines | Select-String 'ERR=\d+' -AllMa..

PowerShell JSON 읽기: 중첩 속성·배열 인덱스와 False·빈 값 구분

JSON 파일을 읽었는데 원하는 값이 안 보인다면 문자열을 객체로 변환했는지, 속성이 어느 깊이에 있는지, 배열의 몇 번째 항목을 읽는지부터 확인하세요. 이 글은 Get-Content -Raw와 ConvertFrom-Json으로 작은 설정 예시를 읽고, False와 값 없음도 나눠 보는 실습입니다.Windows의 PowerShell 7.6.5에서 직접 실행했습니다. 외부 API 호출·로그인·설정 변경 없이 새 임시 폴더의 가상 JSON만 만듭니다. 실제 서비스 설정이나 비밀 키를 이 예제에 복사할 필요가 없습니다.1. 어디에 무엇이 있는 JSON인지 먼저 보기아래 데이터는 루트에 project·jobs·retry가 있고, jobs 안에 작업 객체 두 개가 들어 있습니다. 그림의 갈래에서 name은 루트 ..

Python 음수 나눗셈: //·%와 int(a/b)가 다른 이유

-7을 3으로 나눴는데 몫이 -2가 아니라 -3이라면 계산이 틀린 것처럼 보일 수 있습니다. Python의 정수 나눗셈은 0 쪽으로 자르는 방식과 다릅니다. 몫만 외우기보다 몫×나누는 수+나머지가 원래 수로 돌아오는지 함께 확인해 보세요.1. 실행 환경과 입력을 고정하세요Windows의 CPython 3.14.0에서 아래 코드를 한 파일로 실행했습니다. 새 연습 폴더에 demo.py로 저장한 뒤, 그 폴더의 PowerShell에서 python --version을 확인하고 python demo.py로 실행하세요. 표준 라이브러리만 사용합니다. 본문의 실제 출력은 같은 파일·같은 실행에서 얻은 기록입니다.for a, b in [(7, 3), (-7, 3), (7, -3), (-7, -3)]: q, r ..

Python UTF-8 파일 첫 글자가 이상할 때: BOM과 utf-8-sig를 구분하세요

CSV 첫 머리글이 눈에는 name인데 startswith("name")가 False라면, 문자열 앞에 보이지 않는 문자가 있는지 확인해 보세요. UTF-8 BOM과 아예 다른 인코딩으로 저장한 파일을 나누면, 무조건 replace로 첫 글자를 지우는 실수를 줄일 수 있습니다.1. 실행 환경과 입력을 고정하세요Windows의 CPython 3.14.0에서 아래 코드를 한 파일로 실행했습니다. 새 연습 폴더에 demo.py로 저장한 뒤, 그 폴더의 PowerShell에서 python --version을 확인하고 python demo.py로 실행하세요. 표준 라이브러리만 사용합니다. 본문의 실제 출력은 같은 파일·같은 실행에서 얻은 기록입니다.from pathlib import Pathpath = Path(..

PowerShell Import-Csv: 따옴표 안 쉼표와 숫자 정렬을 구분하기

CSV를 읽을 때 이름 안에 쉼표가 있다면 단순히 쉼표마다 자르면 안 됩니다. Import-Csv는 따옴표로 묶인 필드를 구분해 읽습니다. 또 숫자처럼 보이는 열도 읽은 직후에는 문자열일 수 있으므로, 점수순 정렬은 자료형을 확인한 뒤 실행해야 합니다.이 글은 Windows PowerShell 앱에서 사용할 수 있는 명령을 설명하며, 실제 실행 결과는 Windows의 PowerShell 7.6.5에서 확인했습니다. 표처럼 보이는 텍스트를 직접 만들어 읽는 연습이고 엑셀 파일을 수정하거나 업무 자료를 외부로 전송하지 않습니다.1. 작은 CSV 파일 만들고 원문 확인Windows 시작 메뉴에서 PowerShell을 열고 아래 준비 블록을 입력합니다. 관리자 권한은 필요 없습니다. 매번 다른 임시 폴더를 만들..

Python range 끝 숫자가 빠지는 이유: stop·음수 간격·빈 범위 비교

range(1, 4)를 반복했는데 4가 나오지 않는 것은 오류가 아닙니다. range의 stop은 포함하지 않는 경계입니다. 시작값과 끝값뿐 아니라 증가 방향까지 함께 보면 빈 범위와 역순 반복의 원인을 구분할 수 있습니다.1. 같은 창에서 작은 범위를 먼저 출력하세요Windows의 설치된 Python을 시작 메뉴에서 열거나 터미널에서 python --version으로 버전을 확인합니다. 이 글은 Python 3.14.0에서 실행했습니다. 대화형 창의 >>>는 입력할 코드가 아닙니다. 아래 코드를 range_demo.py로 저장했다면 해당 폴더의 터미널에서 python range_demo.py로 실행합니다. list(range(...))는 작은 실습 결과를 눈으로 확인하려고 펼친 것입니다.range(1,..

Python any·all 차이: 빈 리스트와 문자열 False를 따로 확인하세요

조건 하나라도 맞으면 통과할지, 전부 맞아야 통과할지를 정할 때 any와 all을 씁니다. 다만 비어 있는 입력과 문자열 False는 사람의 말뜻대로 판정되지 않습니다. 데이터가 존재하는지와 각 항목이 조건을 만족하는지를 나누어 확인하세요.1. 먼저 실행할 위치와 입력을 맞추세요Windows 시작 메뉴에서 Python을 검색해 설치된 Python을 실행하거나, 터미널에서 python --version으로 버전을 확인합니다. 이 글은 Windows의 Python 3.14.0에서 아래 코드를 실행한 결과입니다. >>>가 보이는 대화형 창에서는 표시 기호를 입력하지 말고 코드만 넣습니다. 여러 줄 코드는 메모장에 anyall_demo.py로 저장한 뒤 그 폴더의 터미널에서 python anyall_demo.p..

728x90
반응형
SMALL
728x90
반응형
LIST