python的bug? OSError: [Errno 9] Bad file number

python的bug? OSError: [Errno 9] Bad file number

前面发贴问了怎么定义一个全局变量,后来发现不是变量作用范围的问题。
运行log:
root@Pandora # ./TestCase.py
Traceback (most recent call last):
  File "./TestCase.py", line 44, in <module>
    TC.setup()
  File "./TestCase.py", line 31, in setup
    GWchild.sendline("echo i am setup > setup")
  File "/usr/sfw/lib/python2.5/site-packages/pexpect.py", line 729, in sendline
    n = self.send(str)
  File "/usr/sfw/lib/python2.5/site-packages/pexpect.py", line 722, in send
    c = os.write(self.child_fd, str)
OSError: [Errno 9] Bad file number
我在python 2.5.1, 2.4.2,2.3.3都运行过,一样的问题.两台机器都是内部网,网络质量上肯定没问题。
在Solaris 5.8,5.9, 5.10都试过了,也一样的错误

下面是code:
#!/usr/bin/env python

import unittest,pexpect,time

def login(host,account,accountPasswd,RootPasswd):
    child= pexpect.spawn ('telnet '+host)
    child.expect ('login:')
    child.sendline (account)
    child.expect ('Password:')
    child.sendline (accountPasswd)
    child.expect('$')
    child.sendline('su -')
    child.expect('Password:')
    child.sendline(RootPasswd)
    child.sendline('bash')
    child.expect('#')
    fout=open("log","a")
    child.logfile=fout
    return child

GWchild=login("192.168.22.236","nocadm","S1n0cadM","Bjsroot")
GWchild.sendline("cd /export/home/nocadm/")


GWchild.sendline("echo i am outer > out")
#MidHandle.restartASG(GWchild,"cm.TCSBM2Korean")

#class TC2_1_2(unittest.TestCase):
class TC2_1_2:
    def setup(self):
            GWchild.sendline("echo i am setup > setup")

    def testTC2_1_2(self):
            GWchild.sendline("echo i am testTC2_1_2 > case")
        
    def teardown(self):
            pass

time.sleep(5)
GWchild.close()

if __name__=="__main__":
        TC=TC2_1_2()
        TC.setup()
        TC.testTC2_1_2()
谢谢

global写在函数体内,你写到哪里去了?


QUOTE:
原帖由 ttvast 于 2007-11-8 02:22 发表
global写在函数体内,你写到哪里去了?

不是变量作用范围的问题,sorry
为什么有些程序行在 if __name__行的前面?
你先GWClient.close() ,当然fd就关闭了。
多谢指点!