[Tutor] [SPAM?] Re: Case Insensitive Globing
Richard Damon
Richard at Damon-Family.org
Sat May 18 07:31:49 EDT 2019
On 5/18/19 6:52 AM, Alan Gauld via Tutor wrote:
> On 18/05/2019 03:14, Richard Damon wrote:
>
>> The same directory, running the same program under Mac OS X, which also
>> is a case insensitive file system,
> That is your mistake. Darwin, the core of the MacOS X system
> is a version of BSD Unix and like all Unix OS is very much
> case sensitive.
>
> Some of the GUI tools in MacOS X may work as if they were case
> insensitive (presumably for backwards compatibility to MacOS 9)
> but the underlying OS is case sensitive and all the Terminal
> type tools and commands, including Python, follow suit.
Ok, I guess I have gotten used to the GUI tools and their behavior, that
would explain why glob works the way it does.
>> Is there an easy was to make glob match files as a case insensitive manner?
> Depends on what you mean by easy :-)
> You could include both upper and lower case letters in the search:
>
> glob.glob("[aA][mM][iI][xX][eE][dD][nN][aA][mM][eE]")
>
> And you could write a helper function to generate the search strings.
>
> But personally I'd probably just use listdir and compare with
> my search string expressed as a regex.
>
> for fname in os.listdir('.'):
> if re.match("aregex", fname)
> ...
>
> Another option might be to use fnmatch against the uppercase
> version of the name
>
> for fname in os.listdir('.'):
> if fnmatch(pattern, fname.upper())
> ...
>
> HTH
I was hoping for something simpler, but I guess an explicit directory
search isn't that bad.
Thanks.
--
Richard Damon
More information about the Tutor
mailing list