免费注册 查看新帖 |

Chinaunix

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

求帮助:TypeError: iteration over non-sequence [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-01-07 15:24 |只看该作者 |倒序浏览
本帖最后由 none311 于 2013-01-07 16:39 编辑

python新人,照着书上敲了一段代码,替换apache的配置 但是给了3个参数:./replace.py httpd.conf "0.0.0.0:80" "/test"
报错:
Traceback (most recent call last):
  File "./replace.py", line 31, in ?
    for line in replace_docroot(conf_string,vhost,docroot):
TypeError: iteration over non-sequence

求帮助
  1. from cStringIO import StringIO
  2. import re
  3. vhost_start=re.compile(r'<VirtualHost\s+(.*?)>')
  4. vhost_end=re.compile(r'</VirtualHost')
  5. docroot_re=re.compile(r'(DocumentRoot\s+)(\S+)')

  6. def replace_docroot(conf_string,vhost,new_docroot):
  7.     conf_file=StringIO(conf_string)
  8.     in_vhost=False
  9.     curr_vhost=None
  10.     for line in conf_file:
  11.         vhost_start_match=vhost_start.search(line)
  12.         if vhost_start_match:
  13.            curr_vhost=vhost_start_match.groups()[0]
  14.            in_vhost=True
  15.         if in_vhost and (curr_vhost == vhost):
  16.             docroot_match=docroot_re.search(line)
  17.             if docroot_match:
  18.                sub_line=docroot_re.sub(r'\1%s' % new_docroot,line)
  19.                line=sub_line
  20.         vhost_end_match=vhost_end.search(line)
  21.         if vhost_end_match:
  22.             in_vhost=False
  23. if __name__=='__main__':
  24.     import sys
  25.     conf_file=sys.argv[1]
  26.     vhost=sys.argv[2]
  27.     docroot=sys.argv[3]
  28.     conf_string=open(conf_file).read()
  29.     for line in replace_docroot(conf_string,vhost,docroot):
  30.         print line
复制代码

论坛徽章:
0
2 [报告]
发表于 2013-01-10 23:11 |只看该作者
replace_docroot这个函数即没有yield,不是产生器,也没有return,不是函数,返回None。所以报错,你再查查漏打了什么?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP