【问题标题】:Permission denied to .json file when using a JSON file as a store in Kivy app在 Kivy 应用程序中使用 JSON 文件作为存储时,.json 文件的权限被拒绝
【发布时间】:2014-10-14 06:24:07
【问题描述】:

我正在尝试将值存储在 JsonStore 文件中,但单击按钮时出现以下错误;

文件“C:\utils\kivy\kivy\kivy\storage\jsonstore.py”,第 39 行,在 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()

【问题讨论】:

  • 尝试将完整路径传递给文件 - 根据您执行脚本的方式,您的用户可能无权写入目录。
  • @Burhan Khalid - 非常感谢,它适用于完整路径(我正在我的 PC 上进行测试)。将尝试部署到手机,看看我是否可以在没有完整路径的情况下运行它。

标签: python json kivy


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-15
    • 1970-01-01
    • 1970-01-01
    • 2021-08-11
    • 2013-04-13
    • 2016-10-06
    • 2020-05-17
    相关资源
    最近更新 更多