如何编写一个函数来返回包含从文本文件加载的数据的字典

2024-10-01 07:47:42 发布

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

这是我到目前为止得到的,现在我得到的sankey还没有定义。你知道吗

    def makeSankey (inf):

     sankey = {}
     with open("file.txt") as f:
         for line in f:
            (key, val) = line.split()
            sankey[str(key)] = val



     return makeSankey()

    for i in sankey():
     print(i),sankey[i]`

文本文件如下所示:

    Single,2106
    Double,603
    Triple,44
    Home Run,431
    Walk / HBP,1402
    Sacrifice Out,137
    Other Out,8160

Tags: keyintxtfor定义defwithline
2条回答

如果file.txt包含类似于key,val的行,则此方法有效。使用python script.py file.txt

#!/usr/bin/python2
import sys

def makeSankey(file_name):
    sankey = {}
    with open(file_name) as f:
        for line in f:
            (key,val) = line.split(",")
            # strip to remove \n
            sankey[key] = val.strip()

    # return the dic to the caller
    return sankey

if __name__ == "__main__":
    # received file name as an argument, if not then just pass it to makeSankey fun
    sanKeyDic = makeSankey(sys.argv[1])
    print(sanKeyDic)

首先,不能在函数外访问sankey。 不能调用sankey,因为函数名不是makeSankey。 使用return makeSankey的意思可能是返回值,该值存储在sankey中,因此可以return sankey。你知道吗

您在固定条件下的代码应该是这样的,我仍然不确定输入是否与您提供的相同,但您可以尝试:

def makeSankey(fileName):
    sankey = {}
    with open(fileName) as f:
        for line in f:
            (key, val) = line.split()
            sankey[key] = val
    return sankey

data = makeSankey("file.txt")

for i in data:
    print(i, data[i])

相关问题 更多 >