2016-05-18 3 views
1

У меня возникли проблемы с удалением нежелательных символов в Python. Приведенный ниже код извлекается из файла (хотя символы \ rn \ n [] 'не включены в файл.)Удаление ненужных символов при записи в файл

Я хочу вычеркнуть все ненужные символы, перечисленные выше, так что у меня просто есть номера и текст, а затем записать их в другой файл. Я пробовал много методов, таких как line.strip, но ни один из них не работал.

Вот как я пишу в файл прямо сейчас;

product = str(product) 
f.write(product) 

И вот результат

['34512340', 'Plain Brackets', '0.5\r\n'] 

Если кто-нибудь может объяснить простыми словами, то, что мне нужно, чтобы добавить к этому, чтобы удалить ненужные символы, я был бы очень благодарен. Благодаря

ответ

0
#list of lines 
lines = ['34512340', '0.5\r\n', 'Plain Brackets']; 

#looping through the whole list 
for i in range(len(lines)): 

    #stripping unwanted characters \n and \r from each line 
    lines[i] = lines[i].rstrip('\n').rstrip('\r') 

    #printing the line without the unwanted characters 
    print lines[i] 

Выход:

34512340 
0.5 
Plain Brackets 
0

Вот пример:

elements = ['34512340', '0.5\r\n', 'Plain Brackets']; 

number_of_elements = len(elements); 

for i in xrange(0, number_of_elements): 
    elements[i] = elements[i].rstrip('\r\n'); # instead of specific symbols, you can also create a list to filter here 
    print elements[i]; 
+2

Параметр ',' нет цели здесь и ужасно непитоновский. –

+0

Извините, я не понимаю этого. @UrsaMajor Есть ли более простой способ сделать это? –

+0

Мой ответ почти такой же, как у Dot_Py. –

0

Просто некоторое изменение:

list(map(lambda x:str(x).rstrip('\r\n'),['34512340', 'Plain Brackets', '0.5\r\n'])) 

мне очень нравится с помощью встроенной в функции карты при применении логики для всех элементов в списке. Просто делает для одной строки, а не зацикливается. Производительность не уверена, как она складывается. Я никогда не занимался списками, достаточно большими, если это имеет значение, поэтому я предпочитаю один лайнер.

Map function documentation

Карта принимает функцию в качестве одного параметра затем списка или iteratable типа в качестве второго паров и применяет функцию ко всем элементам в списке. Я передал объявление лямбда-функции, чтобы сделать ее более кратким.

Смежные вопросы