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'对象没有属性'删除'
请帮助我解决这个问题。
答案 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