summaryrefslogtreecommitdiff
path: root/doc/other-utilities.html
blob: d3bb26cd453d421ea7c6770b4ba76d191a8bbe31 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    
    <title>Other utilities &mdash; argparse v1.1 documentation</title>
    <link rel="stylesheet" href="_static/default.css" type="text/css" />
    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
    <script type="text/javascript">
      var DOCUMENTATION_OPTIONS = {
        URL_ROOT:    '',
        VERSION:     '1.1',
        COLLAPSE_MODINDEX: false,
        FILE_SUFFIX: '.html',
        HAS_SOURCE:  true
      };
    </script>
    <script type="text/javascript" src="_static/jquery.js"></script>
    <script type="text/javascript" src="_static/doctools.js"></script>
    <link rel="top" title="argparse v1.1 documentation" href="index.html" />
    <link rel="up" title="API documentation" href="api-docs.html" />
    <link rel="prev" title="Other methods" href="other-methods.html" /> 
  </head>
  <body>
    <div class="related">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="genindex.html" title="General Index"
             accesskey="I">index</a></li>
        <li class="right" >
          <a href="other-methods.html" title="Other methods"
             accesskey="P">previous</a> |</li>
        <li><a href="index.html">argparse v1.1 documentation</a> &raquo;</li>
          <li><a href="api-docs.html" accesskey="U">API documentation</a> &raquo;</li> 
      </ul>
    </div>  

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body">
            
  <div class="section" id="other-utilities">
<h1>Other utilities<a class="headerlink" href="#other-utilities" title="Permalink to this headline">¶</a></h1>
<div class="section" id="filetype-objects">
<h2>FileType objects<a class="headerlink" href="#filetype-objects" title="Permalink to this headline">¶</a></h2>
<dl class="class">
<dt id="FileType">
<em class="property">
class </em><tt class="descname">FileType</tt><big>(</big><em>mode='r'</em>, <em>bufsize=None</em><big>)</big><a class="headerlink" href="#FileType" title="Permalink to this definition">¶</a></dt>
<dd><p>The <a title="FileType" class="reference internal" href="#FileType"><tt class="xref docutils literal"><span class="pre">FileType</span></tt></a> factory creates objects that can be passed to the type argument of <a title="add_argument" class="reference external" href="add_argument.html#add_argument"><tt class="xref docutils literal"><span class="pre">add_argument()</span></tt></a>. Arguments that have <a title="FileType" class="reference internal" href="#FileType"><tt class="xref docutils literal"><span class="pre">FileType</span></tt></a> objects as their type will open command-line args as files with the requested modes and buffer sizes:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">argparse</span><span class="o">.</span><span class="n">ArgumentParser</span><span class="p">()</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;--output&#39;</span><span class="p">,</span> <span class="nb">type</span><span class="o">=</span><span class="n">argparse</span><span class="o">.</span><span class="n">FileType</span><span class="p">(</span><span class="s">&#39;wb&#39;</span><span class="p">,</span> <span class="mf">0</span><span class="p">))</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">parse_args</span><span class="p">([</span><span class="s">&#39;--output&#39;</span><span class="p">,</span> <span class="s">&#39;out&#39;</span><span class="p">])</span>
<span class="go">Namespace(output=&lt;open file &#39;out&#39;, mode &#39;wb&#39; at 0x...&gt;)</span>
</pre></div>
</div>
<p>FileType objects understand the pseudo-argument <tt class="docutils literal"><span class="pre">'-'</span></tt> and automatically convert this into <tt class="docutils literal"><span class="pre">sys.stdin</span></tt> for readable <a title="FileType" class="reference internal" href="#FileType"><tt class="xref docutils literal"><span class="pre">FileType</span></tt></a> objects and <tt class="docutils literal"><span class="pre">sys.stdout</span></tt> for writable <a title="FileType" class="reference internal" href="#FileType"><tt class="xref docutils literal"><span class="pre">FileType</span></tt></a> objects:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span> <span class="o">=</span> <span class="n">argparse</span><span class="o">.</span><span class="n">ArgumentParser</span><span class="p">()</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;infile&#39;</span><span class="p">,</span> <span class="nb">type</span><span class="o">=</span><span class="n">argparse</span><span class="o">.</span><span class="n">FileType</span><span class="p">(</span><span class="s">&#39;r&#39;</span><span class="p">))</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">parser</span><span class="o">.</span><span class="n">parse_args</span><span class="p">([</span><span class="s">&#39;-&#39;</span><span class="p">])</span>
<span class="go">Namespace(infile=&lt;open file &#39;&lt;stdin&gt;&#39;, mode &#39;r&#39; at 0x...&gt;)</span>
</pre></div>
</div>
</dd></dl>

</div>
</div>


          </div>
        </div>
      </div>
      <div class="sphinxsidebar">
        <div class="sphinxsidebarwrapper">
            <h3><a href="index.html">Table Of Contents</a></h3>
            <ul>
<li><a class="reference external" href="">Other utilities</a><ul>
<li><a class="reference external" href="#filetype-objects">FileType objects</a></li>
</ul>
</li>
</ul>

            <h4>Previous topic</h4>
            <p class="topless"><a href="other-methods.html"
                                  title="previous chapter">Other methods</a></p>
            <h3>This Page</h3>
            <ul class="this-page-menu">
              <li><a href="_sources/other-utilities.txt"
                     rel="nofollow">Show Source</a></li>
            </ul>
          <div id="searchbox" style="display: none">
            <h3>Quick search</h3>
              <form class="search" action="search.html" method="get">
                <input type="text" name="q" size="18" />
                <input type="submit" value="Go" />
                <input type="hidden" name="check_keywords" value="yes" />
                <input type="hidden" name="area" value="default" />
              </form>
              <p class="searchtip" style="font-size: 90%">
              Enter search terms or a module, class or function name.
              </p>
          </div>
          <script type="text/javascript">$('#searchbox').show(0);</script>
        </div>
      </div>
      <div class="clearer"></div>
    </div>
    <div class="related">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="genindex.html" title="General Index"
             >index</a></li>
        <li class="right" >
          <a href="other-methods.html" title="Other methods"
             >previous</a> |</li>
        <li><a href="index.html">argparse v1.1 documentation</a> &raquo;</li>
          <li><a href="api-docs.html" >API documentation</a> &raquo;</li> 
      </ul>
    </div>
    <div class="footer">
      &copy; Copyright 2006-2009, Steven Bethard.
      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.1.
    </div>
  </body>
</html>