Python2.7中的命令输出解析

时间:2016-04-21 07:06:59

标签: python-2.7

有一个系统命令可以输出如下:

 OUTPUT    HDMI2  123.123.123
(OUTPUT) * HDMI1  124.124.124

我该如何解析它?我需要解析,我需要带有()和*的行中的数据,这是在使用中。当我得到使用中的线路时,我需要HDMI部分和数字部分。

1 个答案:

答案 0 :(得分:1)

检查该行是否包含字符串@for (int i = 0; i < Model.OpenIssue.Count(); i++) { @Html.HiddenFor(modelItem => modelItem.OpenIssue[i].Id); //a lot more HiddenFor fields Model.AllIssuesExceptOriginal.Capacity = Model.AllIssuesExceptOriginal.Count; var History = Model.OpenIssue[i].Histories.Where(p => p.IssueId == Model.OpenIssue[i].Id).OrderByDescending(a => a.LastUpdate).First(); <tr class="Content_table"> <td class="Content_Column"> <div class="Content_all"> <div class="History">@Html.DisplayFor(modelItem => History.Description)</div> @if( Model.AllIssuesExceptOriginal.Where(p => p.InternalNotes.Replace("Updated:", "") == Model.OpenIssue[i].Id.ToString()).Count() != null) { for (int a = 0; a < Model.AllIssuesExceptOriginal.Where(p => p.InternalNotes.Replace("Updated:", "") == Model.OpenIssue[i].Id.ToString()).Except(Model.AllIssuesExceptOriginal.Where(l=>l.LastUpdate == DateTime.MinValue)).Count(); a++) { var OtherIssues = Model.AllIssuesExceptOriginal.Where(p => p.InternalNotes.Replace("Updated:", "") == Model.OpenIssue[i].Id.ToString()).Except(Model.AllIssuesExceptOriginal.Where(l=>l.LastUpdate == DateTime.MinValue)).OrderBy(p => p.LastUpdate).ToList(); if(OtherIssues[a].Description != "noUpdate") { <div class="updated" style="position:relative" id="@i:@a:Description"> <b>@Html.DisplayFor(modelitem=> OtherIssues[a].User.FirstName) @Html.DisplayFor(modelitem=> OtherIssues[a].User.LastName)</b> <span style="color:grey;">-@Html.ValueFor(modelitem=> OtherIssues[a].LastUpdate, "{0:dd.MM.yy HH:mm}") </span> <br /> @Html.DisplayFor(modelItem => OtherIssues[a].Description, new { @class = "meeting" }) <span style="float:right; "><img src="~/Images/ic_cancel_black_18dp.png" id="Description:@i:@a:@Model.AllIssuesExceptOriginal.FindIndex(p=>p.Id == OtherIssues[a].Id)" onclick="markActiveLinkDelete(this);"> @Html.HiddenFor(modelItem => modelItem.AllIssuesExceptOriginal[Model.AllIssuesExceptOriginal.FindIndex(p=>p.Id == OtherIssues[a].Id)].Description) </span> </div> } } } <div class="updated" >@Html.TextAreaFor(modelItem => modelItem.AllIssuesExceptOriginal[Model.AllIssuesExceptOriginal.FindLastIndex(p=>p.InternalNotes.Replace("Updated:","") == Model.OpenIssue[i].Id.ToString())].Description, new { @class = "meeting" })</div> @Html.HiddenFor(modelItem=>modelItem.AllIssuesExceptOriginal[Model.AllIssuesExceptOriginal.FindLastIndex(p=>p.InternalNotes.Replace("Updated:","") == Model.OpenIssue[i].Id.ToString())].InternalNotes) </div> </td> } </table> </div> <p> <input type="submit" value="Save" name = "Save"/> <input type="submit" value="Cancel" name = "Cancel"/> </p> </fieldset> } ,然后返回数字:

VGA

如果if 'VGA' in line: return line.split('VGA')[1] 应该是结果的一部分:

"VGA"

并且,如果您只想要数字,请单独:

if 'VGA' in line:
    return "VGA " + line.split('VGA')[1]

更新解决更新要求的解决方案。

要查找标有if 'VGA' in line: return map(int, line.split('VGA')[1].split('.')) ()的行,正则表达式可能会更好,例如:

*