免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6317 | 回复: 4
打印 上一主题 下一主题

python的bug? OSError: [Errno 9] Bad file number [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-11-06 23:41 |只看该作者 |倒序浏览
前面发贴问了怎么定义一个全局变量,后来发现不是变量作用范围的问题。
运行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()
谢谢

[ 本帖最后由 powerccna 于 2007-11-12 23:30 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2007-11-08 02:22 |只看该作者
global写在函数体内,你写到哪里去了?

论坛徽章:
0
3 [报告]
发表于 2007-11-12 21:24 |只看该作者
原帖由 ttvast 于 2007-11-8 02:22 发表
global写在函数体内,你写到哪里去了?


不是变量作用范围的问题,sorry

论坛徽章:
0
4 [报告]
发表于 2007-11-13 03:39 |只看该作者
为什么有些程序行在 if __name__行的前面?
你先GWClient.close() ,当然fd就关闭了。

论坛徽章:
0
5 [报告]
发表于 2007-11-15 21:12 |只看该作者
多谢指点!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP