在Kivy应用程序中将json文件用作存储时,对.json文件的权限被拒绝

2024-04-27 15:17:07 发布

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

我试图在一个JsonStore文件中存储一个值,但是当单击按钮时出现以下错误

File "C:\utils\kivy\kivy\kivy\storage\jsonstore.py", line 39, in store_sync with open(self.filename, 'w') as fd: PermissionError: [Errno 13] Permission denied: 'storage.json'

# import Kivy
import kivy
import random
import json

from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.label import Label
from kivy.uix.textinput import TextInput
from kivy.storage.jsonstore import JsonStore

# my app
class MyApp(App):
# layout
    def build(self):
    # basic layout
        layout = BoxLayout(padding=10, orientation='vertical')
        self.store = JsonStore('storage.json')
        # widgets
        # button 1
        self.btn1 = Button(text="OK")
        self.btn1.bind(on_press=self.buttonClicked)
        layout.add_widget(self.btn1)
        # label 1
        self.lbl1 = Label(text="test")
        layout.add_widget(self.lbl1)
        # input 1
        self.txt1 = TextInput(text='', multiline=False)
        layout.add_widget(self.txt1)
        # return layout
        return layout




    # button click function
    def buttonClicked(self,btn):
        self.lbl1.text = "You wrote " + self.txt1.text
        self.store.put('myStorage1', value1=self.txt1.text, value2='test')
# run app
if __name__ == "__main__":
    MyApp().run()

Tags: storetextfromimportselfjsonappbutton
1条回答
网友
1楼 · 发布于 2024-04-27 15:17:07

使用Kivy的user_data_dir自动确定用户数据存储在不同设备上的位置,然后传递要存储的文件的完整路径。在

from kivy.storage.jsonstore import JsonStore
from os.path import join

data_dir = App().user_data_dir
store = JsonStore(join(data_dir, 'storage.json'))

相关问题 更多 >