본문 바로가기

WithStatement3

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 'with' 문에서 여러 변수 사용하기?, Multiple variables in a 'with' statement? 질문 파이썬에서 with 문을 사용하여 하나 이상의 변수를 선언하는 것이 가능한가요? 다음과 같은 방식으로: from __future__ import with_statement with open("out.txt","wt"), open("in.txt") as file_out, file_in: for line in file_in: file_out.write(line) ... 또는 두 개의 리소스를 동시에 정리하는 것이 문제인가요? 답변 파이썬 3.1부터 가능하며 Python 3.1 및 Python 2.7에서 사용할 수 있습니다. 새로운 with 구문은 여러 개의 컨텍스트 매니저를 지원합니다: with A() as a, B() as b, C() as c: doSomething(a,b,c) contextlib... 2023. 9. 13.
Python 파일에 줄을 올바르게 작성하는 방법은 무엇인가요?, Correct way to write line to file? 질문 현대 Python에서 파일에 한 줄을 쓰는 방법은 무엇인가요? 이것은 더 이상 사용되지 않는다고 들었습니다: print >>f, "hi there" 또한, "\n"은 모든 플랫폼에서 작동하나요, 아니면 Windows에서는 "\r\n"을 사용해야 하나요? 답변 이것은 간단하게 다음과 같이 작성할 수 있습니다: with open('somefile.txt', 'a') as the_file: the_file.write('Hello\n') 문서에서는 다음과 같이 설명합니다: 텍스트 모드(기본값)로 열린 파일을 쓸 때(os.linesep 사용하지 마세요) 플랫폼과 관계없이 단일 '\n'을 사용하세요. 유용한 자료: with 문 open() 'a'는 추가 쓰기이며, 데이터를 잘라내지 않고 쓰려면 'w'를 사용하.. 2023. 5. 25.