Python

在 Python 腳本語言中將行的一部分複制為整數

  • December 13, 2018

我需要使用 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()

使用string.split()你可以實現這一點。您需要使用[and]將字元串分成兩部分。然後得到你想要的字元串部分。要刪除空格,您可以使用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)

如果您想要浮點數“3.610770”中的整數值,您可以使用int(timeout_value)

引用自:https://unix.stackexchange.com/questions/487703