Re: Searching for a file

Thomas Passin <[email protected]>
Newsgroups gmane.comp.python.general
Message-ID <[email protected]>
On 5/27/2025 10:41 AM, Roland Mueller via Python-list wrote:
> To get a list of files in a given directory one can use glob.glob and

The OP had a different problem.  He wanted to find a config file of 
known name that could be in one of several locations.

> os.path.isfile
> 
>>>> from os.path import isfile
>>>> from glob import glob
>>>> files_in_var_tmp = [f for f in glob('/var/tmp/*') if isfile(f) ]
> 
> For several directories iterate over the dirs and add the resulting list of
> files.
> 
>>>> tmp_files = []
>>>> for dir in ['/tmp', '/var/tmp']:
> ...     tmp_files += [f for f in glob(dir + '/*')  if isfile(f) ]
> 
> 
> ti 27.5.2025 klo 17.05 Peter J. Holzer ([email protected]) kirjoitti:
> 
>> On 2025-05-24 17:18:11 -0600, Mats Wichmann wrote:
>>> On 5/23/25 16:05, Rob Cliffe via Python-list wrote:
>>>> On 23/05/2025 18:55, Mats Wichmann wrote:
>>>>> On 5/22/25 21:04, Rob Cliffe via Python-list wrote:
>>>>>> It occurs to me that it might be useful if Python provided a
>>>>>> function to search for a file with a given name in various
>>>>>> directories (much as the import.import_lib function searches for
>>>>>> a module in the directories in sys.path).
>>>>>> This function would perhaps be best placed in the os.path or os
>> modules.
>>>>>> To start the ball rolling, I offer this version:
>>>>> consider: os.walk, glob.glob, Path.glob
>>>>>
>>>>>
>>>> I have.  None of these are appropriate.
>>>> os.walk iterates *recursively* over a *single* directory and its
>>>> subdirectories.
>>>> pathlib.Path.glob so far as I can make out (I have never used pathlib)
>>>> does much the same.
>>>> glob.glob (so far as I can make out) does a *wildcard* search for
>>>> directories matching a *single* pattern.
>>>> My suggestion needs a *non-recursive* search for a *file* in a *list*
>> of
>>>> *non-wildcarded* directories.
>>>
>>> They don't give you "search in a list of directories" intrinsically, but
>>> that's simple loop, bailing out on a match, no?
>>
>> But they all read directories. For Rob's purpose this isn't necessary.
>> He just needs to test a fixed number of locations. Reading even one
>> directory (muss less recursively scanning a whole tree like os.walk
>> does) is just pointless extra work.
>>
>>          hjp
>>
>> --
>>     _  | Peter J. Holzer    | Story must make more sense than reality.
>> |_|_) |                    |
>> | |   | [email protected]         |    -- Charles Stross, "Creative writing
>> __/   | http://www.hjp.at/ |       challenge!"
>> --
>> https://mail.python.org/mailman3//lists/python-list.python.org
>>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.