我想创建一个文件并将其保存为json格式。我发现的每个示例都指定了“打开”方法。我在Windows上使用Python 2.7。请帮助我了解为什么我第一次保存的文件需要“打开”。
我已经阅读了所有可以找到并研究此问题的教程,但是仍然没有运气。我不想在程序外部创建文件,然后让程序覆盖它。
这是我的代码:
def savefile():
filename = filedialog.asksaveasfilename(initialdir =
"./Documents/WorkingDirectory/",title = "Save file",filetypes = (("JSON
files","*.json"), ("All files", "*.")))
with open(filename, 'r+') as currentfile:
data = currentfile.read()
print (data)
这是我得到的错误:
Tkinter回调Traceback中的异常(最近一次调用最后一次):
调用中的文件“ C:\ Python27 \ lib \ lib-tk \ Tkinter.py”,行1542 在保存文件中返回self.func(* args)文件“ C:\ Users \ CurrentUser \ Desktop \ newproject.py”,行174 使用open(filename,'r +')作为当前文件:IOError:[Errno 2]没有这样的文件或目录: u'C:/Users/CurrentUser/Documents/WorkingDirectory/test.json'
答案 0 :(得分:2)
好,我知道了!问题是模式“ r +”。由于我正在创建文件,因此无需读写,只需写入即可。所以我将模式更改为“ w”,并进行了修复。我还添加了“ .json”,因此它将自动添加到文件名之后。
def savefile():
filename = filedialog.asksaveasfilename(initialdir =
"./Documents/WorkingDirectory/",title = "Save file",filetypes = (("JSON
files","*.json"), ("All files", "*.")))
with open(filename + ".json", 'w') as currentfile:
line1 = currentfile.write(stringone)
line2 = currentfile.write(stringtwo)
print (line1,line2)