The pty module, reading from a pty, and Python 2/3

Discussion in 'Python' started by Evan Driscoll, Oct 24, 2012.

  1. I have the following program. Everything is sunshine and rainbows when I
    run in in Python 2, but when I run it under Python 3 I get an IOError.
    2to3 only reports one dumb suggestion re. a print call (which I can get
    rid of by importing __future__'s print_function, and then it just
    suggests removing that import).

    Can anyone shed any light? I am on Ubuntu Linux with Python 2.7.3 and
    3.2.3.


    (Just for the record, I figured out that it ran under Python 2 by
    accident as I was reducing it for a "why doesn't this run?" email. :)
    I'm not super-familiar with Py3 as I've mostly only worked with 2.)

    I'm not 100% sure how this will come through, so I've also put it at
    http://pastebin.com/60wjXSF3.

    Evan


    import sys
    import pty
    import os

    def get_text(filename):
    try:
    ( child_pid, fd ) = pty.fork() # OK
    except OSError as e:
    print(str(e))
    sys.exit(1)

    if child_pid == 0:
    try:
    with open("log.txt", "w") as f:
    f.write("about to execlp")
    os.execlp("cat", "cat", filename)
    except:
    with open("log.txt", "w") as f:
    f.write("could not spawn process")
    print("Could not spawn")
    sys.exit(1)

    child_pty = os.fdopen(fd)
    return child_pty.read()


    if __name__ == "__main__":
    print(get_text("my-pty-test.py"))


    The read error I get is

    Traceback (most recent call last):
    File "my-pty-test.py", line 28, in <module>
    print(get_text("my-pty-test.py"))
    File "my-pty-test.py", line 24, in get_text
    return child_pty.read()
    IOError: [Errno 5] Input/output error
    Evan Driscoll, Oct 24, 2012
    #1
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Evan Driscoll
    Replies:
    0
    Views:
    201
    Evan Driscoll
    Oct 24, 2012
  2. Evan Driscoll
    Replies:
    0
    Views:
    178
    Evan Driscoll
    Oct 24, 2012
  3. David Hutto
    Replies:
    0
    Views:
    189
    David Hutto
    Oct 24, 2012
  4. David Hutto
    Replies:
    0
    Views:
    175
    David Hutto
    Oct 24, 2012
  5. David Hutto
    Replies:
    0
    Views:
    117
    David Hutto
    Oct 24, 2012
Loading...

Share This Page