Python AttributeError:';str';对象没有属性';名单';

Python AttributeError:';str';对象没有属性';名单';,python,Python,我试图用python创建一个非常简单的日志解析器脚本。一切都按计划进行,但目标计算机上的脚本返回此错误(该脚本在unix计算机上运行,但很好): Python版本似乎是相同的(在两台机器上都是2.7.3)。有什么想法吗 脚本本身: import zipfile import os import re string1 = "searchstring" # raw_input("usrinput: ") try: root = zipfile.ZipFile("/home/testuser

我试图用python创建一个非常简单的日志解析器脚本。一切都按计划进行,但目标计算机上的脚本返回此错误(该脚本在unix计算机上运行,但很好):

Python版本似乎是相同的(在两台机器上都是2.7.3)。有什么想法吗

脚本本身:

import zipfile
import os
import re

string1 = "searchstring" # raw_input("usrinput: ")

try:
   root = zipfile.ZipFile("/home/testuser/docs/testzip.zip", "r")
except:
   root = "testfolder/"
for name in root.namelist():
    if name.find(".") > 0:
        f = root.open(name)
        searchlines = f.readlines()
        for i, line in enumerate(searchlines):
            regex1 = "(.*)" + re.escape(string1) + "(.*)"
            if re.match (regex1, line):
                for l in searchlines[i-4:i+4]: print l,
                print

这是因为它没有任何名称列表作为其属性

根的类型是字符串

这反过来又意味着,
root=zipfile.zipfile(“/home/testuser/docs/testzip.zip”,“r”)
生成了一个异常


在异常块中,尝试使用
异常除外,例如:
,然后打印
ex.message
,以了解生成的异常类型

这是因为,
namelist()
仅适用于
zipfile
,而不适用于
字符串

当无法打开zip文件时会发生这种情况。检查zip文件所在的路径

尝试此操作并查看输出:

try:
   root = zipfile.ZipFile("/home/testuser/docs/testzip.zip", "r")
except Exception, msg:
   print msg
   root = "testfolder/"

当我尝试使用有效的zip文件时,程序运行良好。

这意味着执行了
except
块,并且
root
现在是一个字符串
“testfolder/”
。Pro提示:不要使用blanket
except
语句;你不知道你的
zipfile.zipfile()
现在调用有什么问题。硬编码路径从来不是一个好主意,它会让每个人都知道答案。我删除了整个,除了,因为我发现它在这种情况下是不必要的。真正的罪魁祸首是从windows机器上的total commander复制到zipfile的路径。它以某种方式将文件夹名大写。
try:
   root = zipfile.ZipFile("/home/testuser/docs/testzip.zip", "r")
except Exception, msg:
   print msg
   root = "testfolder/"