【发布时间】:2014-06-17 17:20:34
【问题描述】:
我需要从 .txt 文件中提取一些信息并获得简洁的输出行
输出应如下所示:
Display 1 - VMware SVGA 3D - 1600 x 900 x 32 bit @ 60 Hz - Primary Device
文本文件有以下信息:
ws_diag 5.3.0 build-1427931
Device \\.\DISPLAY1
Desc = "VMware SVGA 3D"
Mode = 1555 x 794 x 32-bit @ 60Hz
Bounds = 0,0 1555,794
Flags = PRIMARY_DEVICE, ATTACHED_TO_DESKTOP
Device \\.\DISPLAY2
Desc = "VMware SVGA 3D"
Flags = 0x00000000
Device \\.\DISPLAYV1
Desc = "RDPDD Chained DD"
Flags = MIRRORING_DRIVER, TS_COMPATIBLE
Device \\.\DISPLAYV2
Desc = "RDP Encoder Mirror Driver"
Flags = MIRRORING_DRIVER, TS_COMPATIBLE
Device \\.\DISPLAYV3
Desc = "RDP Reflector Display Driver"
Flags = MIRRORING_DRIVER, TS_COMPATIBLE
monitor-info.txt (END)
这是我目前所拥有的:
import sys
file = open(monitor-info.txt[1])
while 1:
line = file.readline()
tpl = line.split(":")
if tpl[0] == "Desc":
var = tpl[0]
if tpl[1] == "Mode":
print var, tpl[1]
if tpl[2] == "Flag":
var = tpl[2]
print var
if not line:
break
我也试过awk:
awk -F: '/^Device/{v=$2}/^Desc/{print v $2}/^Mode/{print v$3}/^Flags/{print v$4}' output_file.txt
【问题讨论】:
-
这不是一个人们为你编写代码的网站。您应该尝试一下,然后就可以提出更具体的问题。
-
awk -F: '/^Device/{v=$2}/^Desc/{print v $2}/^Mode/{print v$3}/^Flags/{print v$4}' output_file.txt 尝试使用 awk 并从 txt 文件中打印“Display 1 - VMware SVGA 3D - 1600 x 900 x 32 bit @ 60 Hz - Primary Device”