summaryrefslogtreecommitdiff
path: root/devdocs/python~3.12/library%2Ffnmatch.html
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2024-04-07 13:41:34 -0500
committerCraig Jennings <c@cjennings.net>2024-04-07 13:41:34 -0500
commit754bbf7a25a8dda49b5d08ef0d0443bbf5af0e36 (patch)
treef1190704f78f04a2b0b4c977d20fe96a828377f1 /devdocs/python~3.12/library%2Ffnmatch.html
new repository
Diffstat (limited to 'devdocs/python~3.12/library%2Ffnmatch.html')
-rw-r--r--devdocs/python~3.12/library%2Ffnmatch.html41
1 files changed, 41 insertions, 0 deletions
diff --git a/devdocs/python~3.12/library%2Ffnmatch.html b/devdocs/python~3.12/library%2Ffnmatch.html
new file mode 100644
index 00000000..e736db27
--- /dev/null
+++ b/devdocs/python~3.12/library%2Ffnmatch.html
@@ -0,0 +1,41 @@
+ <span id="fnmatch-unix-filename-pattern-matching"></span><h1>fnmatch — Unix filename pattern matching</h1> <p><strong>Source code:</strong> <a class="reference external" href="https://github.com/python/cpython/tree/3.12/Lib/fnmatch.py">Lib/fnmatch.py</a></p> <span class="target" id="index-0"></span> <p>This module provides support for Unix shell-style wildcards, which are <em>not</em> the same as regular expressions (which are documented in the <a class="reference internal" href="re#module-re" title="re: Regular expression operations."><code>re</code></a> module). The special characters used in shell-style wildcards are:</p> <table class="docutils align-default" id="index-2"> <thead> <tr>
+<th class="head"><p>Pattern</p></th> <th class="head"><p>Meaning</p></th> </tr> </thead> <tr>
+<td><p><code>*</code></p></td> <td><p>matches everything</p></td> </tr> <tr>
+<td><p><code>?</code></p></td> <td><p>matches any single character</p></td> </tr> <tr>
+<td><p><code>[seq]</code></p></td> <td><p>matches any character in <em>seq</em></p></td> </tr> <tr>
+<td><p><code>[!seq]</code></p></td> <td><p>matches any character not in <em>seq</em></p></td> </tr> </table> <p>For a literal match, wrap the meta-characters in brackets. For example, <code>'[?]'</code> matches the character <code>'?'</code>.</p> <p id="index-3">Note that the filename separator (<code>'/'</code> on Unix) is <em>not</em> special to this module. See module <a class="reference internal" href="glob#module-glob" title="glob: Unix shell style pathname pattern expansion."><code>glob</code></a> for pathname expansion (<a class="reference internal" href="glob#module-glob" title="glob: Unix shell style pathname pattern expansion."><code>glob</code></a> uses <a class="reference internal" href="#fnmatch.filter" title="fnmatch.filter"><code>filter()</code></a> to match pathname segments). Similarly, filenames starting with a period are not special for this module, and are matched by the <code>*</code> and <code>?</code> patterns.</p> <p>Also note that <a class="reference internal" href="functools#functools.lru_cache" title="functools.lru_cache"><code>functools.lru_cache()</code></a> with the <em>maxsize</em> of 32768 is used to cache the compiled regex patterns in the following functions: <a class="reference internal" href="#module-fnmatch" title="fnmatch: Unix shell style filename pattern matching."><code>fnmatch()</code></a>, <a class="reference internal" href="#fnmatch.fnmatchcase" title="fnmatch.fnmatchcase"><code>fnmatchcase()</code></a>, <a class="reference internal" href="#fnmatch.filter" title="fnmatch.filter"><code>filter()</code></a>.</p> <dl class="py function"> <dt class="sig sig-object py" id="fnmatch.fnmatch">
+<code>fnmatch.fnmatch(filename, pattern)</code> </dt> <dd>
+<p>Test whether the <em>filename</em> string matches the <em>pattern</em> string, returning <a class="reference internal" href="constants#True" title="True"><code>True</code></a> or <a class="reference internal" href="constants#False" title="False"><code>False</code></a>. Both parameters are case-normalized using <a class="reference internal" href="os.path#os.path.normcase" title="os.path.normcase"><code>os.path.normcase()</code></a>. <a class="reference internal" href="#fnmatch.fnmatchcase" title="fnmatch.fnmatchcase"><code>fnmatchcase()</code></a> can be used to perform a case-sensitive comparison, regardless of whether that’s standard for the operating system.</p> <p>This example will print all file names in the current directory with the extension <code>.txt</code>:</p> <pre data-language="python">import fnmatch
+import os
+
+for file in os.listdir('.'):
+ if fnmatch.fnmatch(file, '*.txt'):
+ print(file)
+</pre> </dd>
+</dl> <dl class="py function"> <dt class="sig sig-object py" id="fnmatch.fnmatchcase">
+<code>fnmatch.fnmatchcase(filename, pattern)</code> </dt> <dd>
+<p>Test whether <em>filename</em> matches <em>pattern</em>, returning <a class="reference internal" href="constants#True" title="True"><code>True</code></a> or <a class="reference internal" href="constants#False" title="False"><code>False</code></a>; the comparison is case-sensitive and does not apply <a class="reference internal" href="os.path#os.path.normcase" title="os.path.normcase"><code>os.path.normcase()</code></a>.</p> </dd>
+</dl> <dl class="py function"> <dt class="sig sig-object py" id="fnmatch.filter">
+<code>fnmatch.filter(names, pattern)</code> </dt> <dd>
+<p>Construct a list from those elements of the iterable <em>names</em> that match <em>pattern</em>. It is the same as <code>[n for n in names if fnmatch(n, pattern)]</code>, but implemented more efficiently.</p> </dd>
+</dl> <dl class="py function"> <dt class="sig sig-object py" id="fnmatch.translate">
+<code>fnmatch.translate(pattern)</code> </dt> <dd>
+<p>Return the shell-style <em>pattern</em> converted to a regular expression for using with <a class="reference internal" href="re#re.match" title="re.match"><code>re.match()</code></a>.</p> <p>Example:</p> <pre data-language="python">&gt;&gt;&gt; import fnmatch, re
+&gt;&gt;&gt;
+&gt;&gt;&gt; regex = fnmatch.translate('*.txt')
+&gt;&gt;&gt; regex
+'(?s:.*\\.txt)\\Z'
+&gt;&gt;&gt; reobj = re.compile(regex)
+&gt;&gt;&gt; reobj.match('foobar.txt')
+&lt;re.Match object; span=(0, 10), match='foobar.txt'&gt;
+</pre> </dd>
+</dl> <div class="admonition seealso"> <p class="admonition-title">See also</p> <dl class="simple"> <dt>
+<code>Module</code> <a class="reference internal" href="glob#module-glob" title="glob: Unix shell style pathname pattern expansion."><code>glob</code></a>
+</dt>
+<dd>
+<p>Unix shell-style path expansion.</p> </dd> </dl> </div> <div class="_attribution">
+ <p class="_attribution-p">
+ &copy; 2001&ndash;2023 Python Software Foundation<br>Licensed under the PSF License.<br>
+ <a href="https://docs.python.org/3.12/library/fnmatch.html" class="_attribution-link">https://docs.python.org/3.12/library/fnmatch.html</a>
+ </p>
+</div>