Changeset 727 for hodgestar/Talks

Show
Ignore:
Timestamp:
03/05/10 21:38:58 (2 years ago)
Author:
hodgestar
Message:

File handling slide.

Location:
hodgestar/Talks/PythonForProgrammers
Files:
3 added
5 modified

Legend:

Unmodified
Added
Removed
  • hodgestar/Talks/PythonForProgrammers

    • Property svn:ignore set to
      _*
  • hodgestar/Talks/PythonForProgrammers/html/py4progs-0.html

    r726 r727  
    1111<li><a href='py4progs-2.html'>Course Structure</a></li> 
    1212<li><a href='py4progs-3.html'>Numeric and Sequence Types</a></li> 
     13<li><a href='py4progs-4.html'>File Handling and Iterables</a></li> 
    1314</ol> 
    1415<br /></body></html> 
  • hodgestar/Talks/PythonForProgrammers/html/py4progs-3.html

    r726 r727  
    3333<li>IPython is awesome.</li> 
    3434</ul> 
    35 </div><br /><div class="footer"><hr /><div style="float: left; font-style: italic;">Python 4 Programmers</div><div style="float: right;"><a accesskey="P" href="py4progs-2.html">Prev</a> | <a accesskey="I" href="py4progs-0.html">Index</a> | Next</div></div></body></html> 
     35</div><br /><div class="footer"><hr /><div style="float: left; font-style: italic;">Python 4 Programmers</div><div style="float: right;"><a accesskey="P" href="py4progs-2.html">Prev</a> | <a accesskey="I" href="py4progs-0.html">Index</a> | <a accesskey="N" href="py4progs-4.html">Next</a></div></div></body></html> 
  • hodgestar/Talks/PythonForProgrammers/html/py4progs-4.html

    r726 r727  
    66</head> 
    77<body> 
    8 <div style='margin: auto; width: 50%;'><h2>Strings</h2><ul> 
    9 <li>Examples:<div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">x</span> <span class="o">=</span> <span class="nb">chr</span><span class="p">(</span><span class="mf">13</span><span class="p">)</span> 
    10 <span class="gp">&gt;&gt;&gt; </span><span class="n">y</span> <span class="o">=</span> <span class="nb">chr</span><span class="p">(</span><span class="mf">13</span><span class="p">)</span> 
    11 <span class="gp">&gt;&gt;&gt; </span><span class="nb">id</span><span class="p">(</span><span class="n">x</span><span class="p">),</span> <span class="nb">id</span><span class="p">(</span><span class="n">y</span><span class="p">)</span> 
    12 <span class="go">(3082874688L, 3082874688L)</span> 
    13 <span class="gp">&gt;&gt;&gt; </span><span class="n">x</span> <span class="o">=</span> <span class="nb">chr</span><span class="p">(</span><span class="mf">13</span><span class="p">)</span> <span class="o">+</span> <span class="nb">chr</span><span class="p">(</span><span class="mf">14</span><span class="p">)</span> 
    14 <span class="gp">&gt;&gt;&gt; </span><span class="n">y</span> <span class="o">=</span> <span class="nb">chr</span><span class="p">(</span><span class="mf">13</span><span class="p">)</span> <span class="o">+</span> <span class="nb">chr</span><span class="p">(</span><span class="mf">14</span><span class="p">)</span> 
    15 <span class="gp">&gt;&gt;&gt; </span><span class="nb">id</span><span class="p">(</span><span class="n">x</span><span class="p">),</span> <span class="nb">id</span><span class="p">(</span><span class="n">y</span><span class="p">)</span> 
    16 <span class="go">(3077159616L, 3077159584L)</span> 
    17 <span class="gp">&gt;&gt;&gt; </span><span class="n">x</span> <span class="o">=</span> <span class="s">&quot;a&quot;</span><span class="o">*</span><span class="mf">20</span> 
    18 <span class="gp">&gt;&gt;&gt; </span><span class="n">y</span> <span class="o">=</span> <span class="s">&quot;a&quot;</span><span class="o">*</span><span class="mf">20</span> 
    19 <span class="gp">&gt;&gt;&gt; </span><span class="n">z</span> <span class="o">=</span> <span class="s">&quot;a&quot;</span><span class="o">*</span><span class="mf">21</span> 
    20 <span class="gp">&gt;&gt;&gt; </span><span class="n">w</span> <span class="o">=</span> <span class="s">&quot;a&quot;</span><span class="o">*</span><span class="mf">21</span> 
    21 <span class="gp">&gt;&gt;&gt; </span><span class="nb">id</span><span class="p">(</span><span class="n">x</span><span class="p">),</span> <span class="nb">id</span><span class="p">(</span><span class="n">y</span><span class="p">),</span> <span class="nb">id</span><span class="p">(</span><span class="n">z</span><span class="p">),</span> <span class="nb">id</span><span class="p">(</span><span class="n">w</span><span class="p">)</span> 
    22 <span class="go">(3079663488L, 3079663488L, 3079721328L, 3079721568L)</span> 
     8<div style='margin: auto; width: 50%;'><h2>File Handling and Iterables</h2><ul> 
     9<li>text2.py:<div class="highlight"><pre><span class="k">def</span> <span class="nf">main</span><span class="p">(</span><span class="n">args</span><span class="p">):</span> 
     10    <span class="n">prog</span> <span class="o">=</span> <span class="n">args</span><span class="p">[</span><span class="mf">0</span><span class="p">]</span> 
     11    <span class="n">filenames</span> <span class="o">=</span> <span class="n">args</span><span class="p">[</span><span class="mf">1</span><span class="p">:]</span> 
     12 
     13    <span class="k">for</span> <span class="n">filename</span> <span class="ow">in</span> <span class="n">filenames</span><span class="p">:</span> 
     14        <span class="n">f</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">filename</span><span class="p">,</span> <span class="s">&quot;rb&quot;</span><span class="p">)</span> 
     15 
     16        <span class="k">try</span><span class="p">:</span> 
     17            <span class="k">for</span> <span class="n">line</span> <span class="ow">in</span> <span class="n">sorted</span><span class="p">(</span><span class="n">f</span><span class="p">):</span> 
     18                <span class="k">print</span> <span class="n">line</span><span class="p">,</span> 
     19        <span class="k">finally</span><span class="p">:</span> 
     20            <span class="n">f</span><span class="o">.</span><span class="n">close</span><span class="p">()</span> 
     21 
     22        <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">filename</span><span class="p">,</span> <span class="s">&quot;rb&quot;</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span> 
     23            <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">line</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">sorted</span><span class="p">(</span><span class="n">f</span><span class="p">)):</span> 
     24                <span class="k">print</span> <span class="s">&quot;</span><span class="si">%3d</span><span class="s">: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">i</span><span class="p">,</span> <span class="n">line</span><span class="p">),</span> 
     25 
     26        <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">filename</span><span class="p">,</span> <span class="s">&quot;rU&quot;</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span> 
     27            <span class="k">print</span> <span class="n">f</span><span class="o">.</span><span class="n">read</span><span class="p">()</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s">&quot;</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span> <span class="s">r&quot; </span><span class="se">\\</span><span class="s"> &quot;</span><span class="p">)</span> 
    2328</pre></div> 
    2429</li> 
    25  
    26 <li>Single characters and empty string held in permament cache (Objects/stringobject.c).</li> 
    27  
    28 <li>Constants strings of size &lt;= 20 interned by parser.</li> 
    29  
    30 <li>PyString_InternInPlace (PyUnicode_InternInPlace in 3.0) results in strings being stored in internal dictionary.<ul><li>Reference in interned not counted in reference count (nasty hack to hide this from users).</li> 
    31 </ul></li> 
    32  
    33 <li>Strings are replaced by Unicode in 3.0</li> 
    3430</ul> 
    35 </div><br /><div class="footer"><hr /><div style="float: left; font-style: italic;">Python 4 Programmers</div><div style="float: right;"><a accesskey="P" href="py4progs-3.html">Prev</a> | <a accesskey="I" href="py4progs-0.html">Index</a> | <a accesskey="N" href="py4progs-5.html">Next</a></div></div></body></html> 
     31</div><br /><div class="footer"><hr /><div style="float: left; font-style: italic;">Python 4 Programmers</div><div style="float: right;"><a accesskey="P" href="py4progs-3.html">Prev</a> | <a accesskey="I" href="py4progs-0.html">Index</a> | Next</div></div></body></html> 
  • hodgestar/Talks/PythonForProgrammers/slides/py4prog.py

    r726 r727  
    8484 
    8585    Slide("Course Structure", 
    86         Bullet("First Script:", PYCODE(''' 
     86        Bullet("First Script:", PYCODE(r''' 
    8787            #!/usr/bin/env python 
    8888 
     
    111111 
    112112    Slide("Numeric and Sequence Types", 
    113         Bullet("Numeric types:", PYCON(''' 
     113        Bullet("Numeric types:", PYCON(r''' 
    114114            >>> 5, 12345678901234567890123 
    115115            (5, 12345678901234567890123L) 
     
    135135    ), 
    136136 
     137    Slide("File Handling and Iterables", 
     138        Bullet("text2.py:", PYCODE(r''' 
     139            def main(args): 
     140                prog = args[0] 
     141                filenames = args[1:] 
     142 
     143                for filename in filenames: 
     144                    f = open(filename, "rb") 
     145 
     146                    try: 
     147                        for line in sorted(f): 
     148                            print line, 
     149                    finally: 
     150                        f.close() 
     151 
     152                    with open(filename, "rb") as f: 
     153                        for i, line in enumerate(sorted(f)): 
     154                            print "%3d: %s" % (i, line), 
     155 
     156                    with open(filename, "rU") as f: 
     157                        print f.read().replace("\n", r" \\ ") 
     158            ''')), 
     159    ), 
     160 
    137161) 
    138162