본문 바로가기

bytes6

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 TypeError: Unicode-objects must be encoded before hashing를 어떻게 수정할 수 있나요?, How to correct TypeError: Unicode-objects must be encoded before hashing? 질문 나는 이 오류를 가지고 있습니다: Traceback (most recent call last): File "python_md5_cracker.py", line 27, in m.update(line) TypeError: Unicode-objects must be encoded before hashing 나는 Python 3.2.2에서 이 코드를 실행하려고 할 때: import hashlib, sys m = hashlib.md5() hash = "" hash_file = input("해시가 있는 파일 이름은 무엇입니까? ") wordlist = input("워드리스트는 무엇입니까? (파일 이름을 입력하세요) ") try: hashdocument = open(hash_file, "r") except IO.. 2023. 11. 16.
Python 파일의 MD5 체크섬 생성, Generating an MD5 checksum of a file 질문 파이썬에서 파일 목록의 MD5 체크섬을 생성하고 확인하는 간단한 방법이 있을까요? (작업 중인 작은 프로그램이 있고, 파일의 체크섬을 확인하고 싶습니다). 답변 당신은 hashlib.md5()을(를) 사용할 수 있습니다. 가끔 전체 파일을 메모리에 넣을 수 없을 때가 있습니다. 그런 경우에는 4096바이트의 청크를 순차적으로 읽고 md5 메서드에 전달해야 합니다: import hashlib def md5(fname): hash_md5 = hashlib.md5() with open(fname, "rb") as f: for chunk in iter(lambda: f.read(4096), b""): hash_md5.update(chunk) return hash_md5.hexdigest() 참고: hash.. 2023. 11. 11.
Python3에서 StringIO를 사용하는 방법은 무엇인가요?, How to use StringIO in Python3? 질문 나는 Python 3.2.1을 사용하고 StringIO 모듈을 가져올 수 없습니다. io.StringIO를 사용하고 작동하지만 numpy의 genfromtxt와 함께 사용할 수 없습니다: x="1 3\n 4.5 8" numpy.genfromtxt(io.StringIO(x)) 다음 오류가 발생합니다: TypeError: Can't convert 'bytes' object to str implicitly import StringIO를 작성하면 다음과 같이 나타납니다: ImportError: No module named 'StringIO' 답변 제가 import StringIO를 작성하면 해당 모듈이 없다고 나옵니다. 파이썬 3.0에서 새로운 내용에 따르면: StringIO와 cStringIO 모듈은 사.. 2023. 9. 8.