如何使用kivy从TextInput写入并保存到文本文件中

Nab*_*Das 5 python android kivy

我想在 TextInput 小部件中输入文本以将其保存到文本文件中。请有人向我展示如何获取在 TextInput 小部件中输入的值以将其保存到文本文件中的示例。

from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.label import Label
from kivy.uix.textinput import TextInput
import os
Run Code Online (Sandbox Code Playgroud)

这种方法是尝试保存到文本文件中,但没有用

def save(self,nam):
    fob = open('c:/test.txt','w')
    write =    fob.write(str(name))


Builder.load_string('''
<MenuScreen>:
    BoxLayout:
        Button:
            text: 'Add New Staff'
            on_press: root.manager.current = 'add_staff'
        Button:
            text: 'View Staff Profile'
        Button:
            text: 'Salary report'

<Add_new_staff>:
    nam: str(name_input)
    job: job_input
    GridLayout:
        cols: 2 
        Label:
            text: 'Name'
        TextInput:
            id: name_input
            multiline: False
        Label:
            text: 'Job'
        TextInput:
            id: job_input
        Label:
            text: 'Salary'
        TextInput:
        Label:
            text: 'Date of Joining'
        TextInput:
        Button:
            text: 'Back to menu'
            on_press: root.manager.current = 'menu'
        Button:
            text: 'Save'
            on_press: app.save(self,nam)
''')


class MenuScreen(Screen):
    pass

class Add_new_staff(Screen):
    pass

sm = ScreenManager()
sm.add_widget(MenuScreen(name='menu'))
sm.add_widget(Add_new_staff(name='add_staff'))

class TestApp(App):
    def build(self):
        return sm



if __name__ == '__main__':
    TestApp().run()
Run Code Online (Sandbox Code Playgroud)

Jor*_*ley 1

尝试创建一个文件夹2c:\test

并保存到那个而不是C:\

class TestApp(App):
    def build(self):
        return sm
    def save(self,nam):
        fob = open('c:/test/test.txt','w')
        write =    fob.write(str(name))
Run Code Online (Sandbox Code Playgroud)

将防止您提到的错误