Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 获得';属性错误';在除最后一个之外的所有正则表达式测试中_Python_Regex - Fatal编程技术网

Python 获得';属性错误';在除最后一个之外的所有正则表达式测试中

Python 获得';属性错误';在除最后一个之外的所有正则表达式测试中,python,regex,Python,Regex,我的代码应该贯穿文件的每一行并执行一个操作。该文件如下所示: FIREFOX::https://addons.mozilla.org/en-US/firefox/addon/ogame-fleet-counter/::(.*) 每行有三件事:名称:URL::正则表达式 代码在文件中只有一行时运行良好,但除此之外,代码只在最后一行运行,其他行在运行前抛出一个错误:AttributeError:'NoneType'对象没有属性“group” 我尝试使用其他方法来运行该文件,因为我认为存在错误,但显然

我的代码应该贯穿文件的每一行并执行一个操作。该文件如下所示:
FIREFOX::https://addons.mozilla.org/en-US/firefox/addon/ogame-fleet-counter/::(.*)

每行有三件事:名称URL::正则表达式

代码在文件中只有一行时运行良好,但除此之外,代码只在最后一行运行,其他行在运行前抛出一个错误:
AttributeError:'NoneType'对象没有属性“group”

我尝试使用其他方法来运行该文件,因为我认为存在错误,但显然这不是问题所在

#!/usr/bin/python
import re
import urllib2
import sys

with open("addons.cfg", "r") as addons:
    for line in addons:
        try:
            name, url, regex = line.split("::")
            response = urllib2.urlopen(url)
            page_source = response.read()

            m = re.search(regex, page_source)
            if m:
                print(m.group(1))
            else:
                print("Couldn't find!")
        except:
            print "Unexpected error:", sys.exc_info()[0]
            raise

视频以更好地显示错误:

发现我的错误,我不得不使用
regex.strip()


你能展示一下你在
page\u source
中收到了什么吗?@AmiHollander这是如此接近于一个副本,以至于如果你在这个问答中找不到解决问题的方法,我会感到惊讶:-)@SimonShine我的代码可以工作,但只在文件的最后一行运行代码,如果我只有2/3/4行可以与最后一行一起工作的话。但是我尝试解码成Unicode,仍然不起作用。当然,如果m:test-
re.search()
没有匹配项,则返回
None
,这是有文档记录的。
#!/usr/bin/python
import re
import urllib2
import sys

with open("addons.cfg", "r") as addons:
    for line in addons:
        name, url, regex = line.split("::")
        source = urllib2.urlopen(url).read()
        regex = regex.strip()
        try:
            regex_result = re.search(regex, source)
            if regex_result:
                print(regex_result.group(1))
            else:
                print("error")
        except:
            print "Unexpected error:", sys.exc_info()[0]
            raise