当前位置: 首页 > 知识库问答 >
问题:

将文件写入字典

左丘嘉木
2023-03-14

我在做一个CSC 110项目。尽管我们还没有学过字典,我还是试着用字典来完成我们的作业。

我有一份国家和他们赢得多少奖牌的档案,用新的行字符隔开。例如:

Afghanistan
0
0
0
Albania
0
0
0
Algeria
0
2
0
olympic_stats = {}
fileIn = open('test.txt', 'r')

line = fileIn.readline()#Initialize Loop
counter = 0
while line != '':
    if counter == 4:
        counter = 0

    if counter%4 == 0:#First Pass, COUNTRY
        country_name = line.rstrip()
    elif counter%4 == 1:#Second Pass, GOLD
        gold_medals = int(line)
    elif counter%4 == 2:#Third Pass, SILVER
        silver_medals = int(line)
    else: #Fourth Pass, BRONZE
        bronze_medals = int(line)

    #update Counter
    counter += 1
    if counter == 4:
        olympic_stats[country_name] = [gold_medals, silver_medals, bronze_medals]


    line = fileIn.readline()#Update Loop

虽然这是有效的,但它是肮脏和过于复杂。我正想出一个新方法来做这件事。

共有1个答案

叶卓君
2023-03-14

虽然你的答案不是很简洁,但它并不是“坏”。我可能会做这样的事情:

olympic_stats = {}
while line:
    line_str = line.rstrip()
    if line_str[0].isalpha():
        country = line_str 
        olympic_stats[country] = []

    else:
        olympic_stats[country].append(line_str)
 类似资料:
  • 问题内容: 快速将NSDictionaries写入文件有局限性。根据我从api文档中学到的知识和这个答案,键类型应该是NSString,值类型也应该是NSx类型,并且Int,String和其他swift类型可能不起作用。问题是,如果我有一个像这样的字典:如何快速将其写入plist文件或从plist文件读取? 问题答案: 无论如何,当您要存储到文件时,它必须是协议的子类并符合协议。像这样: 然后,这

  • 问题内容: 我有一个返回字符串的函数。该字符串包含回车符和换行符(0x0D,0x0A)。但是,当我写入文件时,它仅包含换行符。有没有一种方法可以使输出包括回车和换行符。 问题答案: 如果要写入字节,则应以二进制模式打开文件。

  • 问题内容: 我将日志保存到sdcard上的.txt文件中,但是一旦保存了两行,它就会覆盖它并重新开始? 这是我的代码: 在恢复中挂载/ data后,/ sdcard和/ data / media / 0中的日志文件会显示完整的日志历史记录,但在设备开机时不会显示完整的日志历史记录 问题答案: 这是完成的方式。以下示例代码在单击提交按钮后将详细信息保存到文件中: 希望这可以帮助 :)

  • 问题 你想在文本模式打开的文件中写入原始的字节数据。 解决方案 将字节数据直接写入文件的缓冲区即可,例如: >>> import sys >>> sys.stdout.write(b'Hello\n') Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: must be str,

  • wef:使用apache poi写入xlsm(Excel 2007) 当我向文件中写入一个简单的字符串时,我无法打开该文件。错误-“Excel无法打开文件“Test1.xlsm”,因为文件格式或文件扩展名无效”

  • 问题内容: 我认为我应该完成一项我似乎无法解决的非常简单的任务。 如何将Python字典写入csv文件?我想要的只是将字典键写入文件的第一行,并将键值写入第二行。 我最接近的是以下内容(我是从别人的帖子中获得的): 问题是,上面的代码似乎只将密钥写入第一行,仅此而已。我没有将值写入第二行。 有任何想法吗? 问题答案: 您使用的是期望字典列表而不是字典的列表。您只想DictWriter.writer