Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #5148

Re: py3k buffered IO - flush() required between read/write?

Path csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!news.albasani.net!news2.arglkargh.de!news.wiretrip.org!newsfeed.xs4all.nl!newsfeed5.news.xs4all.nl!xs4all!post.news.xs4all.nl!not-for-mail
Return-Path <python-python-list@m.gmane.org>
X-Original-To python-list@python.org
Delivered-To python-list@mail.python.org
X-Spam-Status OK 0.000
X-Spam-Evidence '*H*': 1.00; '*S*': 0.00; '3.2': 0.07; 'behavior,': 0.07; 'pep': 0.07; 'removes': 0.07; 'sadly': 0.07; 'seemed': 0.07; 'subject:py3k': 0.07; 'terry': 0.07; 'python': 0.07; 'demonstrates': 0.09; 'received:80.91': 0.09; 'received:80.91.229': 0.09; 'received:80.91.229.12': 0.09; 'received:gmane.org': 0.09; 'received:list': 0.09; 'received:lo.gmane.org': 0.09; 'pm,': 0.11; 'linux': 0.11; 'otherwise.': 0.14; 'wrote:': 0.14; 'condense': 0.16; 'enough?': 0.16; 'flush()': 0.16; 'naturally': 0.16; 'outputs': 0.16; 'py3k': 0.16; 'reedy': 0.16; 'subject:() ': 0.16; 'subject:between': 0.16; 'subject:required': 0.16; 'switching': 0.16; 'url:pastebin': 0.16; 'vista.': 0.16; 'question.': 0.18; 'repeated': 0.19; 'appear': 0.19; 'seeing': 0.21; 'jan': 0.22; 'code': 0.22; 'header:In-Reply- To:1': 0.22; 'example': 0.24; 'byte': 0.25; 'notes': 0.26; 'windows': 0.26; "i'm": 0.26; 'skip:b 20': 0.27; 'raise': 0.29; 'subject:?': 0.29; 'does': 0.31; 'url:library': 0.31; 'to:addr :python-list': 0.32; '...': 0.32; "i've": 0.33; 'url:docs': 0.33; 'on,': 0.33; 'test': 0.33; 'lines': 0.34; 'reference': 0.34; 'header:X-Complaints-To:1': 0.34; 'skip:" 10': 0.34; 'file': 0.35; 'editor': 0.35; 'header:User-Agent:1': 0.35; 'suggested': 0.35; 'too': 0.36; 'doing': 0.36; 'rather': 0.36; 'subject:/': 0.36; 'case,': 0.36; 'problem.': 0.36; 'some': 0.37; 'case': 0.37; 'should': 0.37; 'url:python': 0.37; 'issue': 0.37; 'be,': 0.38; 'consistent': 0.38; 'but': 0.38; 'url:org': 0.38; 'received:org': 0.38; 'unless': 0.38; 'cut': 0.39; 'under': 0.39; 'to:addr:python.org': 0.39; 'could': 0.39; 'where': 0.39; 'header :Mime-Version:1': 0.39; 'behavior': 0.40; "it's": 0.40; 'header:Received:5': 0.40; 'might': 0.40; 'removal': 0.60; 'order': 0.61; 'reads': 0.65; 'show': 0.67; '12:27': 0.84; 'lengthy': 0.84; 'read/write': 0.84; 'subject:write': 0.84; 'comparative': 0.91; 'url:io': 0.93
X-Injected-Via-Gmane http://gmane.org/
To python-list@python.org
From Terry Reedy <tjreedy@udel.edu>
Subject Re: py3k buffered IO - flush() required between read/write?
Date Wed, 11 May 2011 14:24:57 -0400
References <iqedg8$k5a$7@dont-email.me>
Mime-Version 1.0
Content-Type text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding 7bit
X-Gmane-NNTP-Posting-Host rain.gmane.org
User-Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.17) Gecko/20110414 Lightning/1.0b2 Thunderbird/3.1.10
In-Reply-To <iqedg8$k5a$7@dont-email.me>
X-BeenThere python-list@python.org
X-Mailman-Version 2.1.12
Precedence list
List-Id General discussion list for the Python programming language <python-list.python.org>
List-Unsubscribe <http://mail.python.org/mailman/options/python-list>, <mailto:python-list-request@python.org?subject=unsubscribe>
List-Archive <http://mail.python.org/pipermail/python-list>
List-Post <mailto:python-list@python.org>
List-Help <mailto:python-list-request@python.org?subject=help>
List-Subscribe <http://mail.python.org/mailman/listinfo/python-list>, <mailto:python-list-request@python.org?subject=subscribe>
Newsgroups comp.lang.python
Message-ID <mailman.1422.1305138322.9059.python-list@python.org> (permalink)
Lines 39
NNTP-Posting-Host 82.94.164.166
X-Trace 1305138322 news.xs4all.nl 81485 [::ffff:82.94.164.166]:44812
X-Complaints-To abuse@xs4all.nl
Xref x330-a1.tempe.blueboxinc.net comp.lang.python:5148

Show key headers only | View raw


On 5/11/2011 12:27 PM, Genstein wrote:

> In py3k is it necessary to flush() a file between read/write calls in order
> to see consistent results?
>
> I ask because I have a case under Python 3.2 (r32:88445) where it does
> appear to be, on both Gentoo Linux and Windows Vista.
>
> I've naturally read http://docs.python.org/py3k/library/io.html and
> http://docs.python.org/py3k/tutorial/inputoutput.html#reading-and-writing-files
> but could find no reference to such a requirement.
>
> PEP 3116 suggested this might not be required in py3k and the
> implementation notes in bufferedio.c state "BufferedReader,
> BufferedWriter and BufferedRandom...share a single buffer...this enables
> interleaved reads and writes without flushing." Which seemed conclusive
> but I'm seeing otherwise.
>
> I have a test case, which is sadly rather long:
> http://pastebin.com/xqrzKr5D It's lengthy because it's autogenerated
> from some rather more complex code I'm working on, in order to reproduce
> the issue in isolation.

I notice that you have required seek calls when switching between 
writing and reading. If you want others to look at this more, you should 
1) produce a minimal* example that demonstrates the questionable 
behavior, and 2) show the comparative outputs that raise your question. 
The code is way too long to cut and paste into an editor and see what is 
does on my windows machine.

*minimal = local minimum rather than global minimum. That means that 
removal or condensation of a line or lines removes the problem. In this 
case, remove extra seeks, unless doing so removes behavior discrepancy. 
Condense 1 byte writes to multibyte writes, unless ... . Are repeated 
interleavings required or is write, seek, read, seek, write enough?

-- 
Terry Jan Reedy

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

py3k buffered IO - flush() required between read/write? Genstein <genstein@invalid.invalid> - 2011-05-11 17:27 +0100
  Re: py3k buffered IO - flush() required between read/write? Terry Reedy <tjreedy@udel.edu> - 2011-05-11 14:24 -0400
    Re: py3k buffered IO - flush() required between read/write? Genstein <genstein@invalid.invalid> - 2011-05-11 20:08 +0100
      Re: py3k buffered IO - flush() required between read/write? Terry Reedy <tjreedy@udel.edu> - 2011-05-11 17:38 -0400
        Re: py3k buffered IO - flush() required between read/write? Genstein <genstein@invalid.invalid> - 2011-05-12 14:30 +0100
          Re: py3k buffered IO - flush() required between read/write? Terry Reedy <tjreedy@udel.edu> - 2011-05-12 15:44 -0400
            Re: py3k buffered IO - flush() required between read/write? Genstein <genstein@invalid.invalid> - 2011-05-12 21:38 +0100
      Re: py3k buffered IO - flush() required between read/write? "Martin P. Hellwig" <martin.hellwig@gmail.com> - 2011-05-11 23:24 +0000

csiph-web