将文本文件转换为字典

时间:2017-11-12 21:58:24

标签: python dictionary

假设我想在Pycharm(keywords.txt)中打开一个文本文件,并假设这个文本文件包含一个单词列表,并带有相应的数值,因此文本文件的格式如下:

apple, 3
banana, 5 
happy, 7
tiger, 9

(数值范围为1-10)

据我所知,为了打开此文件(在读取模式下),我们将执行以下操作:

with open('keywords.txt','r') as f:

我如何阅读文本文件每一行中的每个单词,然后将其作为关键字存储到字典中,然后还存储其相应的数值?

例如:

dictionary = {'apple':'3','banana':'5','happy':'7','tiger':'9'}

我尝试了什么:

with open('keywords.txt','r') as k:
    size_to_read = 1
    k_text = k.read(size_to_read)
    while len(k_text) > 0:
            if k_text.isalpha:
                keywordic = dict.fromkeys({'k_text'})
                print(keywordic)
            k_text = k.read(size_to_read)

我真的不知道我要去哪里......

它只打印了以下一堆:

{'k_text': None}

4 个答案:

答案 0 :(得分:2)

def readFile(filename):
    # Dict that will contain keys and values
    dictionary =  {}
    with open(filename, "r") as f:
        for line in f:
            s = line.strip().split(", ")
            dictionary[s[0]] = int(s[1])
        return dictionary

这可以通过打开文件,使用strip()删除空格,使用strip()将字符串拆分为列表,然后将键设置为字符串数组s的第一部分来实现。是水果,以及将其投射到int后第二部分的值。

答案 1 :(得分:2)

您可以使用for line in myfile:逐行迭代文件。

dictionary = {}
with open("keywords.txt", "r") as file:
    for line in file:
        key, value = line.strip().split(",")
        dictionary[key] = value
print(dictionary)

答案 2 :(得分:1)

data_dict = { line.split(",")[0] : line.split(",")[1] for line in open('keywords.txt') }

答案 3 :(得分:0)

只是逐行读取文件,对于每一行字符串,使用`split(',')来获取行中第一项和第二项的列表,然后你可以存储字典中的两个字符串,如果需要,您可以将第二个字符串转换为整数。