2015-04-22 5 views
0
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 

Когда я запускаю приведенный выше код получить ниже ошибки:Объект не имеет ошибки атрибута

Enter pipe separated list of PODS : EDL|ACP|ANP|GGG

Traceback (most recent call last):

File "./main_menu.py", line 966, in

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

podList.remove(split_pipe[0]) 

AttributeError: 'str' object has no attribute 'remove'

Пожалуйста, помогите мне для решения проблемы здесь.

+2

Ну, 'str' не имеет атрибут' remove'. См. [Документация для объектов str] (https://docs.python.org/2/library/stdtypes.html#string-methods). –

+0

Каков ваш желаемый результат? Вы пытаетесь использовать удаление строки. –

+0

Мой вход: EDL | АКТ | ААА | GGG Мои Desied о/р GGG является неправильный вход Всего Distint Pod Количество: 4 becuse другие элементы присутствуют в .txt файл, который я передаю в питона код и GGG нет в файле .txt , но с заменой метода я получаю, как показано ниже: Е неправильный вход D неправильно вход L является неправильный вход | неправильный ввод A неправильный ввод C неправильный ввод P неправильный ввод | неправильный ввод A неправильный ввод A неправильный ввод A неправильный ввод | неверный ввод G неправильный ввод G неправильный ввод G неправильный ввод – Himanshu

ответ

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 
+0

@ Alsuna: Большое спасибо Alsuna. Меня устраивает. – Himanshu

0

В Python строка не удаляет метод.

podList.remove(split_pipe[0]) 

Если вы хотите, чтобы удалить подстроку, принадлежащий к строке, которую вы должны сделать это

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

Мои данные: EDL | ACP | AAA | GGG My Desied o/p - GGG неправильный вход Всего Distint Pod Count: 4 becuse другие записи присутствуют в .txt-файле, который я передаю в коде python, и GGG отсутствует в файле .txt, но с заменой метода я получаю, как показано ниже: E - неправильный ввод D - неправильный ввод L - неправильный ввод | неверный вход A - неправильный вход C - неправильный вход P - неправильный ввод | неверный ввод A - неправильный вход A - неправильный вход A - неправильный ввод | неверный вход G неправильный вход G неправильный вход G неправильный ввод podList.replace (split_pipe [0], "") – Himanshu

+0

Что у вас есть в split_pipe [0]? – lapinkoira

+0

Я вызываю файл здесь: podList = str (raw_input ('Введите список разделяемых строк PODS:')). Strip ('|') #pipelst = str (raw_input ('Введите список разделенных труб:')) .split ('|') filepath = '/ fsnadmin/SAAS_SUPPORT/pod_data_from_FM.txt ' для lns in open (путь к файлу): split_pipe = lns.split (': ', 1) if split_pipe [0] in podList: #print split_pipe [0],' details: ', split_pipe [1] podList.remove (split_pipe [0]) для lns in podList: print lns, 'is wrong input' – Himanshu

0

строки Python неизменны. Вы можете создать новую строку с символами replaced другими персонажами:

>>> s = 'hello' 
>>> s.replace('e', 'a') 
'hallo' 
Смежные вопросы