0

我正在尝试从文本文件中删除很多东西来重写它。文本文件有数百个项目,每个项目由 6 行组成。我让我的代码工作到将所有行放入数组中,识别每个项目中唯一重要的 2 个并删除空格,但任何进一步的剥离都会给我以下错误:

'list' 对象没有属性 'strip'

这是我的代码:

x = 0
y = 0
names = []
colors = []
array = []

with open("AA_Ivory.txt", "r") as ins:

    for line in ins:
        array.append(line)

def Function (currentElement, lineInSkinElement):
    name = ""
    color = ""
    string = array[currentElement]
    if lineInSkinElement == 1:
        string = [string.strip()]
#       string = [string.strip()]
#       name = [str.strip("\n")]
#       name = [str.strip(";")]
#       name = [str.strip(" ")]
#       name = [str.strip("=")]
        names.append(name)
        return name
#   if lineInSkinElement == 2:
#       color = [str.strip("\t")]
#       color = [str.strip("\n")]
#       color = [str.strip(";")]
#       color = [str.strip(" ")]
#       color = [str.strip("=")]
#       colors.append(color)
#       return color
    print "I got called %s times" % currentElement
    print lineInSkinElement
    print currentElement

for val in array:
    Function(x, y)
    x = x +1
    y = x % 6

#print names
#print colors

if名称的声明中,删除第一个#会给我错误。我尝试将列表项转换为字符串,但随后我得到了额外[]的字符串。

for的if声明color可以忽略,我知道它有问题,试图解决这个问题是让我遇到当前问题的原因。

4

3 回答 3

1

但后来我在字符串周围得到了额外的 []

您可以遍历它以绕过列出的字符串。例如:

for lst, item in string:
    item = item.strip("\n")
    item = item.strip(";")
    item = item.strip(" ")
    item = item.strip("=")
    name.append(item)
    return name

这将使您进入列表中的字符串,您可以附加剥离的字符串。

如果这不是您要查找的内容,请发布您正在使用的一些数据以进行澄清。

于 2017-06-17T20:48:45.387 回答
0

您也可以使用以下代码在一行中执行此操作。

item = item.strip("\n").strip("=").strip(";").strip()

最后一条将去除空白。

于 2020-05-28T16:17:31.170 回答
0

好吧,我找到了解决方案。这是我的一个相当愚蠢的错误。由于 [] arroung strip 函数使结果成为列表或列表项,因此发生错误。删除它们修复了它。现在感觉松了口气,有点傻,但是松了口气。

于 2017-06-19T17:04:03.823 回答