diff options
Diffstat (limited to 'doc/source/other-utilities.rst')
-rw-r--r-- | doc/source/other-utilities.rst | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/doc/source/other-utilities.rst b/doc/source/other-utilities.rst new file mode 100644 index 0000000..9fd9d61 --- /dev/null +++ b/doc/source/other-utilities.rst @@ -0,0 +1,21 @@ +Other utilities
+===============
+
+FileType objects
+----------------
+
+.. class:: FileType(mode='r', bufsize=None)
+
+ The :class:`FileType` factory creates objects that can be passed to the type argument of :meth:`add_argument`. Arguments that have :class:`FileType` objects as their type will open command-line args as files with the requested modes and buffer sizes:
+
+ >>> parser = argparse.ArgumentParser()
+ >>> parser.add_argument('--output', type=argparse.FileType('wb', 0))
+ >>> parser.parse_args(['--output', 'out'])
+ Namespace(output=<open file 'out', mode 'wb' at 0x013A2380>)
+
+ FileType objects understand the pseudo-argument ``'-'`` and automatically convert this into ``sys.stdin`` for readable :class:`FileType` objects and ``sys.stdout`` for writable :class:`FileType` objects:
+
+ >>> parser = argparse.ArgumentParser()
+ >>> parser.add_argument('infile', type=argparse.FileType('r'))
+ >>> parser.parse_args(['-'])
+ Namespace(infile=<open file '<stdin>', mode 'r' at 0x00ADF020>)
|