summaryrefslogtreecommitdiffstats
path: root/Lib/fileinput.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/fileinput.py')
-rw-r--r--Lib/fileinput.py49
1 files changed, 49 insertions, 0 deletions
diff --git a/Lib/fileinput.py b/Lib/fileinput.py
index 2f17dc8..db8ddbd 100644
--- a/Lib/fileinput.py
+++ b/Lib/fileinput.py
@@ -89,6 +89,13 @@ _state = None
DEFAULT_BUFSIZE = 8*1024
def input(files=None, inplace=0, backup="", bufsize=0):
+ """input([files[, inplace[, backup]]])
+
+ Create an instance of the FileInput class. The instance will be used
+ as global state for the functions of this module, and is also returned
+ to use during iteration. The parameters to this function will be passed
+ along to the constructor of the FileInput class.
+ """
global _state
if _state and _state._file:
raise RuntimeError, "input() already active"
@@ -96,6 +103,7 @@ def input(files=None, inplace=0, backup="", bufsize=0):
return _state
def close():
+ """Close the sequence."""
global _state
state = _state
_state = None
@@ -103,36 +111,77 @@ def close():
state.close()
def nextfile():
+ """
+ Close the current file so that the next iteration will read the first
+ line from the next file (if any); lines not read from the file will
+ not count towards the cumulative line count. The filename is not
+ changed until after the first line of the next file has been read.
+ Before the first line has been read, this function has no effect;
+ it cannot be used to skip the first file. After the last line of the
+ last file has been read, this function has no effect.
+ """
if not _state:
raise RuntimeError, "no active input()"
return _state.nextfile()
def filename():
+ """
+ Return the name of the file currently being read.
+ Before the first line has been read, returns None.
+ """
if not _state:
raise RuntimeError, "no active input()"
return _state.filename()
def lineno():
+ """
+ Return the cumulative line number of the line that has just been read.
+ Before the first line has been read, returns 0. After the last line
+ of the last file has been read, returns the line number of that line.
+ """
if not _state:
raise RuntimeError, "no active input()"
return _state.lineno()
def filelineno():
+ """
+ Return the line number in the current file. Before the first line
+ has been read, returns 0. After the last line of the last file has
+ been read, returns the line number of that line within the file.
+ """
if not _state:
raise RuntimeError, "no active input()"
return _state.filelineno()
def isfirstline():
+ """
+ Returns true the line just read is the first line of its file,
+ otherwise returns false.
+ """
if not _state:
raise RuntimeError, "no active input()"
return _state.isfirstline()
def isstdin():
+ """
+ Returns true if the last line was read from sys.stdin,
+ otherwise returns false.
+ """
if not _state:
raise RuntimeError, "no active input()"
return _state.isstdin()
class FileInput:
+ """class FileInput([files[, inplace[, backup]]])
+
+ Class FileInput is the implementation of the module; its methods
+ filename(), lineno(), fileline(), isfirstline(), isstdin(), nextfile()
+ and close() correspond to the functions of the same name in the module.
+ In addition it has a readline() method which returns the next
+ input line, and a __getitem__() method which implements the
+ sequence behavior. The sequence must be accessed in strictly
+ sequential order; random access and readline() cannot be mixed.
+ """
def __init__(self, files=None, inplace=0, backup="", bufsize=0):
if type(files) == type(''):