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