python文本文件不起作用



因此,我应该将其转移到电话本字典的文件文本看起来像这样:

name1 name2数字

name3 name4数字2

等等..

我尝试了什么:

def read():
    file1=open("file.txt","r")
    dict={}
    for line in file1:
        line=line.split()
        if not line:continue
        dict[line[0]]=line[1:]
    print(dict)

当我运行它时,它没有打印。

谢谢!

这是我的方式

def read_dict():
    file1 = open("file.txt", 'r')
    dict={}  
    # read lines of all
    lines = file1.readlines()
    # Process one line at a time.
    for line in lines:
        line = line.split()
        if not line: continue
        dict[line[0]] = line[1:]
    file1.close()
    print(dict)

read_dict()

或(与)您不必关闭文件

def read_dict():
    with open("file.txt", 'r') as file1:
        dict={}  
        # read lines of all
        lines = file1.readlines()
        # Process one line at a time.
        for line in lines:
            line = line.split()
            if not line: continue
            dict[line[0]] = line[1:]
        print(dict)

确保调用该函数。我已经改变了一点,因此它不使用诸如"读"或" dict"之类的词。这有效:

def main():
    thefile = open("file.txt","r")
    thedict={}
    for theline in thefile:
        thelist = theline.split(" ")
        if not thelist:
            continue
        thedict[thelist[0]]=thelist[1:]
    print(thedict)
main()

导致:

{'Name1': ['Name2', 'Numbersn'], 'Name3': ['Name4', 'Numbers2']}

您已将您的实现包含在功能read()中。您需要在某个地方调用该功能。

def read():
  file1=open("file.txt","r")
  dict={}
  for line in file1:
    line=line.split()
    if not line:continue
    dict[line[0]]=line[1:]
  print(dict)
read()

尝试这个。

在这里发表许多评论。

1-打开文件时忘记添加" .read()"。

2-您对Python语言使用保留的单词。" dict"是语言使用的东西,因此避免直接使用它。而是更具体地命名它们。完全避免使用Python语言已经使用的单词来命名变量。

3-您的功能不会返回任何内容。在每个函数的末尾,您需要指定"返回"以及要返回值的对象。

def read_dict():
    file1 = open("file.txt","r").read()
    my_dict = {}
    for line in file1:
        line = line.split()
        if not line:
            continue
        my_dict[line[0]] = line[1:]
    return my_dict
print(read_dict())

相关内容

  • 没有找到相关文章

最新更新