在文本文件中找到一个字符串,然后用Python打印下面几行的第一个单词

2024-05-16 22:44:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在文本文件中查找关键字。然后,打印下面3行的前3个单词。你知道吗

以下是我的文本文件示例:

...
NAME SP IPHASW D HRMM SECON ...
ABCD BH YZ     A 1236 53.70
EFGH BH XH     A 1243 56.80 
IJKL SZ TU     B 1248 32.30
MNOP SZ RT       1252 18.50
QRST BH DF     B 1253 54.40

因此,我想找到字符串:“NAME”,然后打印下面的“ABCD”、EFGH和“IJKL”。你知道吗

下面是我用Python编写的代码:

sfile=open("file.txt")

while True:

  line = sfile.readline()

  if line.startswith('NAME'):       
    item1 = sfile.readline()[0:4]
    item2 = sfile.readline()[0:4]
    item3 = sfile.readline()[0:4]
    break


sfile.close()

但它不起作用。。。你知道吗

任何帮助都将不胜感激!厚度:)


Tags: name示例readlineline关键字单词spbh
3条回答

您需要采取的第一步是将文本文件转换为合适的数据结构,我为这个问题选择了Dictionary,您也可以使用嵌套列表。你知道吗

其次,我将各个列的名称转换为该字典的键,然后将这些列下的行值指定为该键的值。你知道吗

dictionary = {}
with open("sample.txt") as sfile:
    data = sfile.readlines()
    keys = data[0].split()
    for k in keys:
        #For creating an empty dictionary
        dictionary[k] = []
    for values in data[1:]:
        for i,value in enumerate(values.strip().split()):
            dictionary[keys[i]].append(value)
    #print dictionary #To review the data structure.

keyword = "NAME"#raw_input("Please enter the keyword:")
print dictionary[keyword][:3]

这是有效的,不确定它是否是你要找的。你知道吗

with open("file.txt", 'r') as sfile:

  lines = sfile.read()
  rows = lines.split('\n')

  for columns in rows:
    items = columns.split(' ')
    print items[0]

好了,我的问题解决了!你知道吗

以下是我的解决方案:

  sfile=open("file.txt")
  data_sfile=sfile.read()
  myArray = data_sfile.split('\n') 

  for i in range(len(myArray)):
        if myArray[i].find("NAME ")>=0:
          item1 = myArray[i+1]
          item2 = myArray[i+2]
          item3 = myArray[i+3]
          break

      item1 = item1 [0:5] 
      item2 = item2 [0:5] 
      item2 = item2 [0:5]

  sfile.close()

好吧,这不是最漂亮的解决方案,但它是有效的!你知道吗

谢谢你的回答

相关问题 更多 >