본문 바로가기

Python220

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.
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.
'//'가 Python에서 사용되는 이유는 무엇인가요? [중복], What is the reason for having '//' in Python? [duplicate] 질문 나는 누군가의 코드에서 이것을 보았습니다: y = img_index // num_images 여기서 img_index는 실행 중인 인덱스이고 num_images는 3입니다. //를 IPython에서 실험해보면, 두 개의 슬래시가 디비전 기호(즉, 하나의 슬래시)와 똑같이 작동하는 것처럼 보입니다. 그래서 두 개의 슬래시를 사용하는 이유가 있는지 궁금했습니다. 답변 파이썬 3에서는 / 연산자가 부동 소수점 나눗셈을 수행하고, // 연산자가 정수 나눗셈(나머지 없는 몫)을 수행하도록 변경되었습니다. 반면에 파이썬 2에서는 / 연산자가 이미 부동 소수점 숫자인 피연산자 중 하나라면 정수 나눗셈을 수행하였습니다. 파이썬 2.X에서: >>> 10/3 3 >>> # 정수 나눗셈에서 부동 소수점 수를 얻으려면:.. 2023. 10. 26.