Below is a short program that illustrate the problem
It works with python2, whether you use the -c option or not.
It only works with python3 if you use the -c option.

The problem seems to come from my expectation that a file
is its own iterator and in python3 that is no longer true
for a NamedTemporaryFile.

Should this be considered a bug?
 
=========================================================================

from tempfile import NamedTemporaryFile
import sys

def main(tmp):
        write = sys.stdout.write
        if tmp:
                tstfl = NamedTemporaryFile("w+", prefix = 'tmptest-')
        else:
                tstfl = open("Temporary", "w+")

        for nr in range(10):
                tstfl.write("This is line %d\n" % nr)

        tstfl.seek(0)
        try:
                while True:
                        ln = next(tstfl)
                        write(ln)
        except StopIteration:
                pass

if __name__ == "__main__":
        tmp = True
        if len(sys.argv) > 1:
                # if -c option is passed a normal file will be
                # used instead of a NamedTemporaryFile
                if sys.argv[1] == '-c':
                        tmp = False 
        main(tmp)

-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to