Reader objects (:class:`DictReader` instances and objects returned by the
:func:`reader` function) have the following public methods:
-
-.. method:: csvreader.next()
+.. method:: csvreader.__next__()
Return the next row of the reader's iterable object as a list, parsed according
- to the current dialect.
+ to the current dialect. Usually you should call this as ``next(reader)``.
-Reader objects have the following public attributes:
+Reader objects have the following public attributes:
.. attribute:: csvreader.dialect
number of records returned, as records can span multiple lines.
-
DictReader objects have the following public attribute:
-
.. attribute:: csvreader.fieldnames
If not passed as a parameter when creating the object, this attribute is
sys.stdin = open("xmldata.txt", "r")
sys.stdout = open(support.TESTFN, "w")
- self.cgi.handle_request()
+ os.environ['CONTENT_LENGTH'] = str(len(data))
+ try:
+ self.cgi.handle_request()
+ finally:
+ del os.environ['CONTENT_LENGTH']
sys.stdin.close()
sys.stdout.close()
# POST data is normally available through stdin
try:
length = int(os.environ.get('CONTENT_LENGTH', None))
- except ValueError:
+ except (ValueError, TypeError):
length = -1
if request_text is None:
request_text = sys.stdin.read(length)