Skip to content

Commit 493e5f0

Browse files
committed
Working on path
1 parent 159e2d4 commit 493e5f0

File tree

2 files changed

+41
-54
lines changed

2 files changed

+41
-54
lines changed

README.md

Lines changed: 24 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1561,7 +1561,7 @@ def write_to_file(filename, text):
15611561
Path
15621562
----
15631563
```python
1564-
from os import getcwd, path, listdir
1564+
from os import getcwd, path, listdir, scandir
15651565
from glob import glob
15661566
```
15671567

@@ -1578,10 +1578,29 @@ from glob import glob
15781578
```
15791579

15801580
```python
1581-
<list> = listdir(<path>) # Returns filenames located at path.
1581+
<list> = listdir(path='.') # Returns filenames located at path.
15821582
<list> = glob('<pattern>') # Returns paths matching the wildcard pattern.
15831583
```
15841584

1585+
```python
1586+
<bool> = path.exists(<path>) # Or: <Path>.exists()
1587+
<bool> = path.isfile(<path>) # Or: <DirEntry/Path>.is_file()
1588+
<bool> = path.isdir(<path>) # Or: <DirEntry/Path>.is_dir()
1589+
```
1590+
1591+
### DirEntry
1592+
**Using scandir() instead of listdir() can significantly increase the performance of code that also needs file type information.**
1593+
1594+
```python
1595+
<iter> = scandir(path='.') # Returns DirEntry objects located at path.
1596+
```
1597+
1598+
```python
1599+
<str> = <DirEntry>.path # Returns path as a string.
1600+
<str> = <DirEntry>.name # Returns final component as a string.
1601+
<file> = open(<DirEntry>) # Opens the file and returns a file object.
1602+
```
1603+
15851604
### Path Object
15861605
```python
15871606
from pathlib import Path
@@ -1600,47 +1619,20 @@ from pathlib import Path
16001619

16011620
```python
16021621
<Path> = <Path>.parent # Returns Path without final component.
1603-
<str> = <Path>.name # Returns final component as string.
1622+
<str> = <Path>.name # Returns final component as a string.
16041623
<str> = <Path>.stem # Returns final component without extension.
16051624
<str> = <Path>.suffix # Returns final component's extension.
16061625
<tup.> = <Path>.parts # Returns all components as strings.
16071626
```
16081627

1609-
```python
1610-
<iter> = <Path>.iterdir() # Returns dir contents as Path objects.
1611-
<iter> = <Path>.glob('<pattern>') # Returns Paths matching the wildcard pattern.
1612-
```
1613-
1614-
```python
1615-
<bool> = <Path>.exists() # Or: path.exists(<path>)
1616-
<bool> = <Path>.is_file() # Or: path.isfile(<path>)
1617-
<bool> = <Path>.is_dir() # Or: path.isdir(<path>)
1618-
```
1619-
16201628
```python
16211629
<str> = str(<Path>) # Returns Path as a string.
16221630
<file> = open(<Path>) # Opens the file and returns a file object.
16231631
```
16241632

1625-
### DirEntry
1626-
**Using scandir() instead of listdir() or iterdir() can significantly increase the performance of code that also needs file type or file attribute information.**
1627-
```python
1628-
<iter> = os.scandir(path='.') # Returns DirEntry objects located at path.
1629-
```
1630-
1631-
```python
1632-
<bool> = <DirEntry>.is_file()
1633-
<bool> = <DirEntry>.is_dir()
1634-
```
1635-
1636-
```python
1637-
<str> = <DirEntry>.path # Returns relative path as a string.
1638-
<str> = <DirEntry>.name # Returns final component.
1639-
```
1640-
16411633
```python
1642-
<Path> = Path(<DirEntry>) # Returns relative Path object.
1643-
<file> = open(<DirEntry>) # Opens the file and returns a file object.
1634+
<iter> = <Path>.iterdir() # Returns dir contents as Path objects.
1635+
<iter> = <Path>.glob('<pattern>') # Returns Paths matching the wildcard pattern.
16441636
```
16451637

16461638

index.html

Lines changed: 17 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1443,7 +1443,7 @@
14431443
file.write(text)
14441444
</code></pre></div>
14451445

1446-
<div><h2 id="path"><a href="#path" name="path">#</a>Path</h2><pre><code class="python language-python hljs"><span class="hljs-keyword">from</span> os <span class="hljs-keyword">import</span> getcwd, path, listdir
1446+
<div><h2 id="path"><a href="#path" name="path">#</a>Path</h2><pre><code class="python language-python hljs"><span class="hljs-keyword">from</span> os <span class="hljs-keyword">import</span> getcwd, path, listdir, scandir
14471447
<span class="hljs-keyword">from</span> glob <span class="hljs-keyword">import</span> glob
14481448
</code></pre></div>
14491449

@@ -1455,9 +1455,21 @@
14551455
&lt;str&gt; = path.dirname(&lt;path&gt;) <span class="hljs-comment"># Returns path without final component.</span>
14561456
&lt;tup.&gt; = path.splitext(&lt;path&gt;) <span class="hljs-comment"># Splits on last period of final component.</span>
14571457
</code></pre>
1458-
<pre><code class="python language-python hljs">&lt;list&gt; = listdir(&lt;path&gt;) <span class="hljs-comment"># Returns filenames located at path.</span>
1458+
<pre><code class="python language-python hljs">&lt;list&gt; = listdir(path=<span class="hljs-string">'.'</span>) <span class="hljs-comment"># Returns filenames located at path.</span>
14591459
&lt;list&gt; = glob(<span class="hljs-string">'&lt;pattern&gt;'</span>) <span class="hljs-comment"># Returns paths matching the wildcard pattern.</span>
14601460
</code></pre>
1461+
<pre><code class="python language-python hljs">&lt;bool&gt; = path.exists(&lt;path&gt;) <span class="hljs-comment"># Or: &lt;Path&gt;.exists()</span>
1462+
&lt;bool&gt; = path.isfile(&lt;path&gt;) <span class="hljs-comment"># Or: &lt;DirEntry/Path&gt;.is_file()</span>
1463+
&lt;bool&gt; = path.isdir(&lt;path&gt;) <span class="hljs-comment"># Or: &lt;DirEntry/Path&gt;.is_dir()</span>
1464+
</code></pre>
1465+
<div><h3 id="direntry">DirEntry</h3><p><strong>Using scandir() instead of listdir() can significantly increase the performance of code that also needs file type information.</strong></p><pre><code class="python language-python hljs">&lt;iter&gt; = scandir(path=<span class="hljs-string">'.'</span>) <span class="hljs-comment"># Returns DirEntry objects located at path.</span>
1466+
</code></pre></div>
1467+
1468+
1469+
<pre><code class="python language-python hljs">&lt;str&gt; = &lt;DirEntry&gt;.path <span class="hljs-comment"># Returns path as a string.</span>
1470+
&lt;str&gt; = &lt;DirEntry&gt;.name <span class="hljs-comment"># Returns final component as a string.</span>
1471+
&lt;file&gt; = open(&lt;DirEntry&gt;) <span class="hljs-comment"># Opens the file and returns a file object.</span>
1472+
</code></pre>
14611473
<div><h3 id="pathobject">Path Object</h3><pre><code class="python language-python hljs"><span class="hljs-keyword">from</span> pathlib <span class="hljs-keyword">import</span> Path
14621474
</code></pre></div>
14631475

@@ -1469,33 +1481,16 @@
14691481
&lt;Path&gt; = &lt;Path&gt;.resolve() <span class="hljs-comment"># Returns absolute Path without symlinks.</span>
14701482
</code></pre>
14711483
<pre><code class="python language-python hljs">&lt;Path&gt; = &lt;Path&gt;.parent <span class="hljs-comment"># Returns Path without final component.</span>
1472-
&lt;str&gt; = &lt;Path&gt;.name <span class="hljs-comment"># Returns final component as string.</span>
1484+
&lt;str&gt; = &lt;Path&gt;.name <span class="hljs-comment"># Returns final component as a string.</span>
14731485
&lt;str&gt; = &lt;Path&gt;.stem <span class="hljs-comment"># Returns final component without extension.</span>
14741486
&lt;str&gt; = &lt;Path&gt;.suffix <span class="hljs-comment"># Returns final component's extension.</span>
14751487
&lt;tup.&gt; = &lt;Path&gt;.parts <span class="hljs-comment"># Returns all components as strings.</span>
14761488
</code></pre>
1477-
<pre><code class="python language-python hljs">&lt;iter&gt; = &lt;Path&gt;.iterdir() <span class="hljs-comment"># Returns dir contents as Path objects.</span>
1478-
&lt;iter&gt; = &lt;Path&gt;.glob(<span class="hljs-string">'&lt;pattern&gt;'</span>) <span class="hljs-comment"># Returns Paths matching the wildcard pattern.</span>
1479-
</code></pre>
1480-
<pre><code class="python language-python hljs">&lt;bool&gt; = &lt;Path&gt;.exists() <span class="hljs-comment"># Or: path.exists(&lt;path&gt;)</span>
1481-
&lt;bool&gt; = &lt;Path&gt;.is_file() <span class="hljs-comment"># Or: path.isfile(&lt;path&gt;)</span>
1482-
&lt;bool&gt; = &lt;Path&gt;.is_dir() <span class="hljs-comment"># Or: path.isdir(&lt;path&gt;)</span>
1483-
</code></pre>
14841489
<pre><code class="python language-python hljs">&lt;str&gt; = str(&lt;Path&gt;) <span class="hljs-comment"># Returns Path as a string.</span>
14851490
&lt;file&gt; = open(&lt;Path&gt;) <span class="hljs-comment"># Opens the file and returns a file object.</span>
14861491
</code></pre>
1487-
<div><h3 id="direntry">DirEntry</h3><p><strong>Using scandir() instead of listdir() or iterdir() can significantly increase the performance of code that also needs file type or file attribute information.</strong></p><pre><code class="python language-python hljs">&lt;iter&gt; = os.scandir(path=<span class="hljs-string">'.'</span>) <span class="hljs-comment"># Returns DirEntry objects located at path.</span>
1488-
</code></pre></div>
1489-
1490-
1491-
<pre><code class="python language-python hljs">&lt;bool&gt; = &lt;DirEntry&gt;.is_file()
1492-
&lt;bool&gt; = &lt;DirEntry&gt;.is_dir()
1493-
</code></pre>
1494-
<pre><code class="python language-python hljs">&lt;str&gt; = &lt;DirEntry&gt;.path <span class="hljs-comment"># Returns relative path as a string.</span>
1495-
&lt;str&gt; = &lt;DirEntry&gt;.name <span class="hljs-comment"># Returns final component.</span>
1496-
</code></pre>
1497-
<pre><code class="python language-python hljs">&lt;Path&gt; = Path(&lt;DirEntry&gt;) <span class="hljs-comment"># Returns relative Path object.</span>
1498-
&lt;file&gt; = open(&lt;DirEntry&gt;) <span class="hljs-comment"># Opens the file and returns a file object.</span>
1492+
<pre><code class="python language-python hljs">&lt;iter&gt; = &lt;Path&gt;.iterdir() <span class="hljs-comment"># Returns dir contents as Path objects.</span>
1493+
&lt;iter&gt; = &lt;Path&gt;.glob(<span class="hljs-string">'&lt;pattern&gt;'</span>) <span class="hljs-comment"># Returns Paths matching the wildcard pattern.</span>
14991494
</code></pre>
15001495
<div><h2 id="oscommands"><a href="#oscommands" name="oscommands">#</a>OS Commands</h2><div><h3 id="filesanddirectories">Files and Directories</h3><ul>
15011496
<li><strong>Paths can be either strings, Paths, or DirEntry objects.</strong></li>

0 commit comments

Comments
 (0)