首页 > 解决方案 > Python ConfigParser.write() 缺少 1 个必需的位置参数“fp”?

问题描述

此处的代码(省略了无关的 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'当我尝试使用另一个程序时,它不需要。我错过了什么?

标签: python-3.xconfigparser

解决方案


它应该是 self.config.write(self.config_file) 或者,如果你坚持的话, ConfigParser.write(self.config, self.config_file)

感谢ForceBru


推荐阅读