3
처럼 나는 다음과 같은 문제가 큰 파일 (몇 메가 비트)를 읽는 기능이 있고, 내용은 같습니다기능은 별도의 파일에 느린
0x05 0x00 0x00 0x00 0xCF 0x00 0x00 0x00 ; ..........
0xCF 0x00 0x00 0x00 0x22 0x00 0x00 0x00 ; ......"...
0x51 0x84 0x07 0x00 0x02 0x00 0x01 0x00 ; ..Q.......
내 기능에만 16 진수 값을 읽을 수있다 , "무시" 뒤에 오는 글자가 줄 끝까지 올 때까지. 내가 필요한 첫 번째 줄에서
데이터
"의 0x05 × 00 × 00 × 00 0xCF × 00 × 00 × 00"입니다
나는 두 가지 방법을 시도, 하나는이 기능
def ReadFileAsList(fileName):
fileName = "2Output.txt"
fileContentStr = ""
with open(fileName,'r') as f:
for line in f:
fileContentStr += line.split(';')[0]
fileContentList = fileContentStr.split()
return fileContentList
과 별도의 파일입니다 이 라인은 내 주요 평 파일에 직접적으로
와 두 번째 방법,
fileName = "2Output.txt"
fileContentStr = ""
with open(fileName,'r') as f:
for line in f:
fileContentStr += line.split(';')[0]
fileContentList = fileContentStr.split()
두 번째 방법은 매우 빠릅니다. 첫 번째 파일 (별개의 파일에 별도의 함수가 있음)은 매우 느리며 무엇이 누락 되었습니까? 모든 힌트를 주셔서 감사합니다
, 뭔가 나에게 알려주에 대한 링크 당신 * 힘 *로 문자열을 연결하면 CPython을가하는 최적화를 놓치게 될'+ ='에서 기능 케이스. 최적화를 사용하지 못하게하는 실제 상황을 기억하지 못합니다. 차이가 아직 있는지 보려면 문자열을 반환하는 문자열 목록을 만들어보십시오. –
@JimFasarakisHilliard 도와 주신 덕분에 –
'open with'줄 아래서,'fileContentList = [line.split (';') [0]과 같은 list comprehension을 사용하여 트림 된 줄의 목록을 만들 수 있습니다. –