簡體   English   中英

將JSON文件用作Kivy應用程序中的存儲時,對.json文件的權限被拒絕

[英]Permission denied to .json file when using a JSON file as a store in Kivy app

我正在嘗試將值存儲在JsonStore文件中,但是單擊按鈕時出現以下錯誤;

在store_sync中,文件“ C:\\ utils \\ kivy \\ kivy \\ kivy \\ kivy \\ storage \\ jsonstore.py”的行39以fd打開(self.filename,'w'),權限為:PermissionError:[Errno 13]權限被拒絕:'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()

使用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'))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM