对象没有属性错误

时间:2015-04-22 13:41:10

标签: python

 podList = str(raw_input('Enter pipe separated list of PODS : ')).upper().strip()
   #pipelst = str(raw_input('Enter pipe separated list  : ')).split('|')
    filepath = '/fsnadmin/SAAS_SUPPORT/pod_data_from_FM.txt'
    for lns in open(filepath):
        split_pipe = lns.split(':', 1)
        if split_pipe[0] in podList:
            #print split_pipe[0], ' details : ', split_pipe[1]
            podList.remove(split_pipe[0])
    for lns in podList : print lns,' is wrong input'
    items = podList.split("|")
    count = len(items)
    print  'Total Distint Pod Count : ',  count

当我运行上面的代码时,得到以下错误:

  

输入管道分隔的PODS列表:EDL | ACP | ANP | GGG

     

追踪(最近一次呼叫最后一次):

     

文件" ./ main_menu.py",第966行,

pPODName()   File "./main_menu.py", line 905, in pPODName

podList.remove(split_pipe[0])
     

属性错误:' str'对象没有属性'删除'

请帮助我解决这个问题。

3 个答案:

答案 0 :(得分:0)

在Python中,String没有删除方法。

podList.remove(split_pipe[0])

如果要删除属于字符串的子字符串,则必须执行此操作

podList = podList.replace(split_pipe[0], "")

答案 1 :(得分:0)

Python字符串是不可变的。您可以使用其他字符创建一个包含字符replaced的新字符串:

>>> s = 'hello'
>>> s.replace('e', 'a')
'hallo'

答案 2 :(得分:0)

在Python str中没有remove方法。

您可能想要的是list str,其中每个str是一个POD。然后你可以delete the strings from the list。这个想法已经存在于您的示例代码中,但已注释掉了。

由于我不知道文件中的行是什么样的,因此这是未经测试的代码:

podList = str(raw_input('Enter pipe separated list of PODS : ')).upper().strip()
pipelst = podList.split('|')
filepath = '/fsnadmin/SAAS_SUPPORT/pod_data_from_FM.txt'
with open(filepath) as f:
    for lns in f:
        split_pipe = lns.split(':', 1)
        if split_pipe[0] in pipelst:
            #print split_pipe[0], ' details : ', split_pipe[1]
            index = pipelst.index(split_pipe[0])
            del pipelst[index]

for lns in pipelst:
    print lns,' is wrong input'

count = len(pipelst)
print  'Total Distint Pod Count : ',  count