Python 스크립팅 언어에서 행의 일부를 정수로 복사합니다.

Python 스크립팅 언어에서 행의 일부를 정수로 복사합니다.

Python을 사용하여 .txt 파일 줄의 타이밍 창을 변수에 복사해야 합니다.

입력 파일:

[Fri Dec 07 18:50:16.775 2018] [    3.610065] dwc3 e2d00000.usb_core: SUCCESS allocating dump_regset memory
[Fri Dec 07 18:50:16.775 2018] [    3.610770] dwc3 e2d00000.usb_core: Soft reset timeout -29631
[Fri Dec 07 18:50:16.775 2018] [    3.614879] dwc3 e2d00000.usb_core: Dump USB registers

그래서 위의 입력 파일에서 필요한"3.610770"행에 다음이 포함되어 있으므로 정수 변수에 복사할 값"소프트 재설정 시간 초과"끈.

코드의 일부를 작성했지만 계속 진행할 수 없습니다.

Python 스크립트 조각:

import sys
inFile = sys.argv[1]

with open(inFile) as fp:
    line = fp.readline()

    while line:
        if "Soft reset timeout" in line:
        #print line
            if "[    " in line:
            #To Do...

        #if "Dump USB registers" in line:
        line = fp.readline()

답변1

를 사용하여 string.split()이를 달성할 수 있습니다 . 문자열을 두 부분으로 나누어 [사용해야 합니다 . ]그런 다음 원하는 문자열 부분을 가져옵니다. 공백을 제거하려면 다음을 사용할 수 있습니다.string.strip()

import sys
input_file=sys.argv[1]
with open(input_file) as fp:
    lines=fp.readlines()
    for line in lines:
        if "Soft reset timeout" in line:
            #print(line)
            second_field=line.split("[")[2]
            timeout_str=second_field.split("]")[0]
            timeout_value=timeout_str.strip()
            print(timeout_value)

float "3.610770"의 정수 값을 원하면 다음을 사용할 수 있습니다.int(timeout_value)

답변2

변수로 변환할 하위 문자열 부분(myVar)을 가져옵니다. 그런 다음 변수를 정수로 변환할 수 있습니다.int(myVar)

바라보다문자열을 부분 문자열로 묶는 방법이 있나요?그리고Python에서 문자열을 정수로 변환하는 방법은 무엇입니까?

관련 정보