2013-05-10 2 views
2

Сначала я читаю текстовый файл в массив строк. Затем я удаляю новую строку из каждого элемента, как только они загружаются в массив. Эти шаги работают нормально. Наконец, я хотел бы отфильтровать любые элементы в массиве строк, которые не являются именами файлов (начиная с «/»).Python: разделительные элементы строкового массива на основе первого символа каждого элемента

Я интересно, если я могу добиться этого, используя тот же тип синтаксиса, используемый для снятия новой строки, т.е. «file_array = [word.strip() для слова в file_array]»

Код Выдержка:

# read file into string array 
with open(bom_filename, 'r') as my_file: 
    file_array = my_file.readlines() 

# remove newline from strings 
file_array = [word.strip() for word in file_array] 

# filter out records that are not filenames 
file_array = [if word[0]=="/" for word in file_array] <= could I do something like this? 

Хотя этот синтаксис действительно полезен, я не очень хорошо знаком с ним! Можно ли использовать условные выражения?

Заранее спасибо ...

+0

см [списковых] (http://docs.python.org/2/tutorial/datastructures.html#list -понимание) - 3-й пример – Aprillion

ответ

4
with open(bom_filename, 'r') as my_file: 
    file_array = [word.strip() for word in my_file if word.startswith("/")] 

Нет необходимости называть .readlines()

+0

, но он хочет наоборот. Думаю, что – Elazar

+0

@Elazar. Вы правы. Кроме того, ваше решение отлично подходит и не нужно удалять его – jamylak

+0

, и если вы объедините его, я предлагаю вставить его в «с». – Elazar

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