Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用python从字典写入文件_Python_Python 3.x_Dictionary - Fatal编程技术网

如何使用python从字典写入文件

如何使用python从字典写入文件,python,python-3.x,dictionary,Python,Python 3.x,Dictionary,我有一个特定的格式,我想遵循。事情是这样的 1 aaa 2 bbb 3 ccc 等 由单个空格分隔的键和值。我有代码把它变成字典,但我不知道如何做相反的事情。我必须将文件内容写入字典的代码是 def readlines(self): self.user_list = {} for line in score_file: (key, val) = line.split() self.user_list[key]

我有一个特定的格式,我想遵循。事情是这样的

1 aaa

2 bbb

3 ccc

由单个空格分隔的键和值。我有代码把它变成字典,但我不知道如何做相反的事情。我必须将文件内容写入字典的代码是

    def readlines(self):
        self.user_list = {}
        for line in score_file:
            (key, val) = line.split()
            self.user_list[key] = val

我需要在程序过程中更新上述词典,然后将更新后的内容以文件中的格式打印到文件中。我更倾向于使用与上述代码相反的代码遵循类似的格式,而不需要导入任何模块。该文件的格式为.txt。谢谢您的帮助。

您只能将字符串写入文件,而不能写入字典。为此,您必须将字典转换为字符串,然后将其推送到文件中

import json

myDict = {1: 'value1',2:'value2'}

with open('myfile.txt', 'w') as file:
     file.write(json.dumps(myDict))

我建议你每次需要的时候都关闭你的文件。所以它不会一直开着

def write_to_file(self):
   # w for write mode
   score_file = open('rating.txt', 'w', encoding='utf-8')
   to_write = ""
   # please rename self.user_list as it is not a list but a dictionary
   for key in self.user_list.keys():
       # value + space + key + new line
       to_write += self.user_list[key] + " " + key + "\n" 
   score_file.write(to_write)
   # if you don't need the file anymore, close it
   score_file.close()

不使用json模块就可以将字典直接写入文件。如果不使用json模块,我将如何操作。我无法使用上述模块。请尝试使用pip install json@botonini。意思是,我目前正在学习使用Jetbrains程序,但我无法使用它。不过谢谢你的帮助。:)op希望输出文件的格式与输入文件的格式相同,而不是jsontry this
for k,v in self.user_list.items():fw.write(k+''+v+'\n')
我对python还很陌生。“fw.write”是做什么的?
fw
文件以fw的形式打开写入
open('output.txt','w')
我已经以
score\u file=open('rating.txt','r+',encoding='utf-8')的形式导入了它。
我将如何使用这种导入方式打开该代码?您是创建新文件还是尝试更新同一个文件?它没有按预期工作,它没有更新列表,而是在文件末尾添加了“JJ300Nathan 500”。它的分数已更新,但之前的剩余部分仍在那里,且其NT间隔。我该如何解决这个问题。谢谢您的帮助。它添加了它,因为您在读取+模式下打开了文件。此模式将仅附加,而不是覆盖。我应该使用什么模式。我仍然需要能够读它和写它。对不起,没有收到。我还是新手。还有,我该如何正确地格式化它呢?还有,它被关闭得更远了。我只是不想发布整件事。如果我使用write+的话,在我访问任何值之前,文件都会被擦除。