在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)

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

答案2

获取要转换为变量的子字符串部分 (myVar)。然后您可以将变量转换为整数:int(myVar)

有没有办法对字符串进行子串化?如何在Python中将字符串转换为整数?

相关内容