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

How to read one character from a file as a key into a dictionary, then make the next n characters its value?

假设我们有一个像这样的 .txt 文件(全部在一行上):

A2.)43@|@C3::#

所以我们希望 "A" 作为值“.)”的键,“4”作为值“@|@”等的键。键后的数字告诉我们要输入多少个字符读取为值,后面的字符是字典中下一项的键。

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

这对我有用

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 and except",您还可以查看该字符串的长度,并执行 if 语句以在 i 大于字符串的长度时中断循环。