首页 > 解决方案 > 如何根据用户输入从文件中读取特定字符串

问题描述

我有一个列出磁盘驱动器详细信息的文本文件。我希望能够输入一个字符串(例如 0:1:7)并将其下方的所有行(最多 25 行)打印到屏幕(或另一个文件)。

问题是文件中有 2 行包含 0:1:7(一行仅包含 0:1:7,我想要的行,另一行包含“物理磁盘 0:1:7”)所以它打印所有东西两次。我怎样才能只根据第一个打印?忽略“物理磁盘 0:1:7”?

with open("driveDetails.txt", "r") as f:
    searchlines = f.readlines()
    slot = raw_input("What is the slot position? (e.g. 0:1:0) ")
for i, line in enumerate(searchlines):
    if slot in line:
        for l in searchlines[i:i+25]: print l,
        print

这将打印出包含 0:1:7 +25 行的行,并且它还会根据包含“物理磁盘 0:1:7”+25 行的行再次打印它。

ID                              : 0:1:7
Status                          : Ok
Name                            : Physical Disk 0:1:7
State                           : Online
Power Status                    : Spun Up
...

Name                            : Physical Disk 0:1:7
State                           : Online
Power Status                    : Spun Up
...

我只想打印第一套。希望这是有道理的。

标签: pythonfilesearchinput

解决方案


推荐阅读