On 2024-10-29, Loris Bennett <loris.benn...@fu-berlin.de> wrote: > Hi, > > With Python 3.9.18, if I do > > try: > with open(args.config_file, 'r') as config_file: > config = configparser.ConfigParser() > config.read(config_file) > print(config.sections()) > > i.e try to read the configuration with the variable defined via 'with > ... as', I get > > [] > > whereas if I use the file name directly > > try: > with open(args.config_file, 'r') as config_file: > config = configparser.ConfigParser() > config.read(args.config_file) > print(config.sections()) > I get > > ['loggers', 'handlers', 'formatters', 'logger_root', 'handler_fileHandler', > 'handler_consoleHandler', 'formatter_defaultFormatter'] > > which is what I expect. > > If I print type of 'config_file' I get > > <class '_io.TextIOWrapper'> > > whereas 'args.config_file' is just > > <class 'str'> > > Should I be able to use the '_io.TextIOWrapper' object variable here? If so > how? > > Here > > https://docs.python.org/3.9/library/configparser.html > > there are examples which use the 'with open ... as' variable for writing > a configuration file, but not for reading one.
As per the docs you link to, the read() method only takes filename(s) as arguments, if you have an already-open file you want to read then you should use the read_file() method instead. -- https://mail.python.org/mailman/listinfo/python-list