Re: Using 'with open(...) as ...' together with configparser.ConfigParser.read

Liste des GroupesRevenir à cl python 
Sujet : Re: Using 'with open(...) as ...' together with configparser.ConfigParser.read
De : loris.bennett (at) *nospam* fu-berlin.de (Loris Bennett)
Groupes : comp.lang.python
Date : 30. Oct 2024, 14:03:55
Autres entêtes
Organisation : FUB-IT, Freie Universität Berlin
Message-ID : <87bjz1vj2c.fsf@zedat.fu-berlin.de>
References : 1 2
User-Agent : Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux)
Jon Ribbens <jon+usenet@unequivocal.eu> writes:

On 2024-10-29, Loris Bennett <loris.bennett@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.

As you and others have pointed out, this is indeed covered in the docs,
so mea culpa.

However, whereas I can see why you might want to read the config from a
dict or a string, what would be a use case in which I would want to
read from an open file rather than just reading from a file(name)?

Cheers,

Loris

--
This signature is currently under constuction.

Date Sujet#  Auteur
29 Oct 24 * Using 'with open(...) as ...' together with configparser.ConfigParser.read12Loris Bennett
29 Oct 24 +* Re: Using 'with open(...) as ...' together with configparser.ConfigParser.read9Jon Ribbens
30 Oct 24 i`* Re: Using 'with open(...) as ...' together with configparser.ConfigParser.read8Loris Bennett
30 Oct 24 i `* Re: Using 'with open(...) as ...' together with configparser.ConfigParser.read7Jon Ribbens
30 Oct 24 i  `* Re: Using 'with open(...) as ...' together with configparser.ConfigParser.read6Loris Bennett
30 Oct 24 i   `* Re: Using 'with open(...) as ...' together with configparser.ConfigParser.read5Jon Ribbens
31 Oct 24 i    `* Re: Using 'with open(...) as ...' together with configparser.ConfigParser.read4Loris Bennett
31 Oct 24 i     +- Re: Using 'with open(...) as ...' together with configparser.ConfigParser.read1Jon Ribbens
31 Oct 24 i     +- Re: Using 'with open(...) as ...' together with configparser.ConfigParser.read1Karsten Hilbert
31 Oct 24 i     `- Re: Using 'with open(...) as ...' together with configparser.ConfigParser.read1MRAB
29 Oct 24 +- Re: Using 'with open(...) as ...' together with configparser.ConfigParser.read1MRAB
30 Oct 24 `- Re: Using 'with open(...) as ...' (Posting On Python-List Prohibited)1Lawrence D'Oliveiro

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal