免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: ZX424
打印 上一主题 下一主题

求助python 跳出while循环问题 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2010-05-26 09:50 |只看该作者
回复 10# GOD_Father

对那个测试代码末尾的空行导致多循环一次肯定是没什么影响的
但是  如果READIP)='\n'   执行下面会不会有问题?  公司没有linux环境没法测试,仅仅是猜测。

foo = pexpect.spawn('telnet %s' % READIP) 创建连接
foo.log_file = fout
foo.expect(['Username:'])

论坛徽章:
0
12 [报告]
发表于 2010-05-26 16:04 |只看该作者
本帖最后由 ZX424 于 2010-05-26 16:11 编辑

问题已经解决了,是回车符导致的问题,非常感谢各位的关注.
ip文件(无空行或空格):
192.168.1.1
192.168.1.2
192.168.1.3

password文件(无空行或空格):
password1
password2
password3

运行:

  1. #!/usr/bin/python
  2. IP = open('ip.txt','r')
  3. PASSWORD = open('pass.txt','r')
  4. while 1:
  5.     READIP=IP.readline()
  6.     READPASS=PASSWORFD.readline()
  7.     print READIP
  8.     print READPASS
  9.     if not READIP
  10.         break
  11. print 'ALL DONE'

复制代码
得到结果为:
192.168.1.1

password1

192.168.1.2

password2

192.168.1.3
password3

ALL DONE


发现输出结果每行当中都会多出一个回车符号,于是我就想会不会是回车符导致的,接着百度了一下,在原来的代码上加了2行:

  1. #!/usr/bin/python
  2. IP = open('ip.txt','r')
  3. PASSWORD = open('pass.txt','r')
  4. while 1:
  5.     READIP=IP.readline()
  6.     READPASS=PASSWORFD.readline()
  7.     READIP =  READIP.rstrip()   # 清除回车符
  8.     READPASS =  READPASS.rstrip()  # 清除回车符
  9.     print READIP
  10.     print READPASS
  11.     if not READIP
  12.         break
  13. print 'ALL DONE'



复制代码
运行的结果为:
192.168.1.1
password1
192.168.1.2
password2
192.168.1.3
password3



ALL DONE


之后再放回原来的代码中就能正常跳出循环了.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP