본문 바로가기

python332

Python 이진 파일을 읽고 각 바이트를 반복하는 것. [중복], Reading binary file and looping over each byte [duplicate] 질문 파이썬에서 이진 파일을 읽고 해당 파일의 각 바이트를 반복하는 방법은 무엇인가요? 답변 파이썬 >= 3.8 왈러스 연산자 (:=) 덕분에 솔루션이 꽤 짧습니다. 파일에서 bytes 객체를 읽고 변수 byte에 할당합니다. with open("myfile", "rb") as f: while (byte := f.read(1)): # 바이트로 작업 수행. 파이썬 >= 3 이전 파이썬 3 버전에서는 약간 더 자세한 방법을 사용해야 합니다: with open("myfile", "rb") as f: byte = f.read(1) while byte != b"": # 바이트로 작업 수행. byte = f.read(1) 혹은 benhoyt이 말한 대로, 같지 않음을 건너뛰고 b""이 거짓으로 평가되는 사실을 이용.. 2023. 11. 24.
Python 딕셔너리에서 키-값 쌍의 하위 집합을 추출하시겠습니까?, Extract a subset of key-value pairs from dictionary? 질문 나는 여러 개의 키-값 쌍(약 16개)을 가진 큰 사전 객체를 가지고 있지만, 나는 그 중 3개에만 관심이 있습니다. 이러한 사전을 하위 집합으로 만드는 가장 좋은 방법(가장 짧고 효율적이며 우아한 방법)은 무엇인가요? 내가 알고 있는 최상의 방법은 다음과 같습니다: bigdict = {'a':1,'b':2,....,'z':26} subdict = {'l':bigdict['l'], 'm':bigdict['m'], 'n':bigdict['n']} 나는 이보다 더 우아한 방법이 있다고 확신합니다. 답변 당신은 다음을 시도해볼 수 있습니다: dict((k, bigdict[k]) for k in ('l', 'm', 'n')) ... 또는 Python 3 Python 버전 2.7 이상에서도 작동한다는 점에 .. 2023. 11. 16.
OS X에서 Python의 기본 버전을 3.x로 설정하는 방법은 무엇인가요? [중복], How to set Python's default version to 3.x on OS X? [duplicate] 질문 나는 Mountain Lion을 실행하고 기본 기본 Python 버전은 2.7입니다. Python 3.3을 다운로드하고 기본값으로 설정하려고합니다. 현재: $ python 버전 2.7.5 $ python3.3 버전 3.3 $ python을 실행할 때마다 3.3이 열리도록 어떻게 설정할 수 있을까요? 답변 기본 파이썬 실행 파일의 버전을 전체 시스템에 변경하면 파이썬2에 의존하는 일부 애플리케이션이 손상될 수 있습니다. 그러나 대부분의 쉘에서 명령을 별칭으로 지정할 수 있습니다. macOS의 기본 쉘인 10.14 이하의 bash 및 10.15의 zsh는 유사한 구문을 공유하기 때문에 다음과 같이 할 수 있습니다. alias python='python3' 이를 ~/.profile에 넣고, ~/.prof.. 2023. 10. 29.
JSON 데이터를 Python 객체로 변환하는 방법은 무엇인가요?, How to convert JSON data into a Python object? 질문 JSON 데이터를 Python 객체로 변환하고 싶습니다. Facebook API에서 JSON 데이터 객체를 받고, 이를 데이터베이스에 저장하고 싶습니다. 현재 Django (Python)에서의 View (request.POST에 JSON이 포함됨): response = request.POST user = FbApiUser(user_id = response['id']) user.name = response['name'] user.username = response['username'] user.save() 이는 잘 작동하지만, 복잡한 JSON 데이터 객체를 어떻게 처리해야 할까요? 만약 이 JSON 객체를 Python 객체로 변환하여 쉽게 사용할 수 있다면 훨씬 좋지 않을까요? 답변 업데이트 Pyth.. 2023. 10. 29.