为了账号安全,请及时绑定邮箱和手机立即绑定

如何从烧瓶中的 txt(RIS) 文件中提取信息

如何从烧瓶中的 txt(RIS) 文件中提取信息

繁花如伊 2022-10-06 19:59:20
我的文件在文本编辑器中看起来如下:Firstname  - philLastname  - taylorBirthdayyear  - 1956Country  - englandEND  -我将文件存储在我的 python 变量中txtFile,当我使用它打印文件时,print(txtFile.read())它在控制台中如下所示:b'Firstname  - phil\r\nLastname  - taylor\r\nBirthdayyear  - 1956\r\nCountry  - england\r\nEND  - '现在我需要获取名字、姓氏、生日年份和国家,并将这些信息存储在变量中,以便以后可以访问这些信息。例如,当我print("His first name is " + firstName)进入His first name is phil控制台时。txt 文件的架构并不总是相同的。“ Firstname”、“ Lastname”、“ Birthdayyear”和“ Country”之类的名称总是相同的,但它们的顺序并不总是相同。所以它可能是例如“ Country”是第一行,“ Firstname”是最后一行。我还没有发现与我在stackoverflow上的问题相同的问题,所以也许有人可以帮助我解决这个问题。
查看完整描述

1 回答

?
不负相思意

TA贡献1777条经验 获得超10个赞

最后我找到了解决问题的方法。我不知道,这是否是最好的方法,但它对我有用:


首先,我浏览了 txt 文件的每一行,并将每一行添加到一个数组中。然后,当行中有 a 时,我拆分了数组的每一"  - "行。例如,将每一行从["Firstname  - phil"]to拆分["Firstname","phil"],然后如果您遍历数组的每一行并发出 if 请求,您就可以访问该名称:如果该行的第一个元素等于"Firstname",则将您的firstName变量设置为等于的第二个元素这条线。我不知道这是否可以理解,但这就是它在 python 代码中的样子...... :-D


 txtFileToArray = []

 splittedTxtArray = []

 firstName=""


     #go through every line of the text file

     for line in txtFile:


          #put every line at the end of the array txtFileToArray and delete the "b" (binaray) at the beginning of every line

          txtFileToArray.append(line.decode('utf-8'))


    #then go through every line of the array and split every line when there is a "  - " and store the lines in a new array

     for line in txtFileToArray: 


          splittedTxtArray.append(element.split("  - "))


    #then check every line of the splitted array if there is a Firstname at the first position

    for linein splittedTxtArray:


          if(line[0] == "Firstname"):

             firstName= line[1]

我希望有一天这可以帮助你:-)


查看完整回答
反对 回复 2022-10-06
  • 1 回答
  • 0 关注
  • 98 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信