В Python ConfigParser.write () отсутствует 1 обязательный позиционный аргумент 'fp'? - PullRequest
0 голосов
/ 11 декабря 2019

Код здесь (опущен несвязанный материал Kivy):

from kivy.app import App
from kivy.core.window import Window
from kivy.uix.widget import Widget
from configparser import ConfigParser
import os

class MIDIApp(App):
    def build(self):
        self.config = ConfigParser()
        self.config.read('values.ini')
        Window.size = Window.size
        return MainWindow()

    def input1_comp_move(self, value):
            print(int(value))

    def input1_save_comp_value(self, value):
        self.config['Input1']['comp'] = str(value)
        print(str(value))
        with open('values.ini', 'w') as config_file:
            ConfigParser.write(config_file)
        print('Input1 comp value is ', value)

class MainWindow(Widget):
    pass

if __name__ == '__main__':
    MIDIApp().run()

Когда я запускаю это, я получаю ошибку ConfigParser.write(self.config_file) TypeError: write() missing 1 required positional argument: 'fp'

И когда я отлаживаю, оставляя это поле пустым, требуется2 позиционных аргумента 'self' и 'filename', это не требовало этого, когда я пытался использовать эту другую программу. Чего мне не хватает?

1 Ответ

0 голосов
/ 12 декабря 2019

Это должен быть self.config.write (self.config_file) или, если вы настаиваете, ConfigParser.write (self.config, self.config_file)

Спасибо ForceBru

...