如何从文件中读取一个字符作为字典中的关键字,然后将接下来的n个字符设为值?

时间:2018-11-12 22:28:07

标签: python file dictionary file-read

让我们说我们有一个.txt文件,像这样(都在一行上):

A2.)43@|@C3::#

因此,我们希望将“ A”用作值“。)”的键,将“ 4”用作值“ @ | @”等的键。键后的数字告诉我们要读取多少个字符作为值,后面的字符是字典中下一项的键。

我正在努力的事情是编写循环。我在想,我们可能想使用for循环遍历文件的长度。但是我真的不知道如何进行。

1 个答案:

答案 0 :(得分:0)

这对我有用

stringText = "A2.)43@|@C3::#"


i=0
myDictionary = {}


while True:
    try:
        #First we grab the key character using i
        keyCharacter = stringText[i]

        #Then we grab the next character which will tell us how many characters they value will have
        # We also convert it to integer for future use
        valueLength = int(stringText[i+1])

        #Then we grab the value by slicing the string
        valueCharacters = stringText[i+2:i+2+valueLength]

        #We add this to the dictionary
        myDictionary[keyCharacter] = valueCharacters

        #We update i to continue where we left off
        i = i+2+valueLength


    except IndexError:
        break

print myDictionary

代替“ try andexcept”,您还可以看到该字符串有多长,并且执行do以及if语句在我大于字符串的长度时中断循环。