Загрузка конкретных данных из файла CSV Python

Я имею дело с файлами CSV, которые содержат много данных. Каждая строка содержит данные в формате, как показано ниже.

Имя, возраст, пол, год рождения

Марк, 18, М., 1978

Мария, 18, М., 1980

Маркус, 18, М., 1978

Эти данные повторяются и так далее для примерно 200 строк. Что я хочу знать, так это способ, которым я могу открыть эту папку и прочитать ее, но распечатать только строки, содержащие 1978. Я, например, для приведенных выше данных, она будет печатать только строки Марка и Маркуса.

Вот мой код до сих пор. Как я могу отредактировать его для достижения моей цели. Является ли это возможным?

 f=open("Names.csv",'rU')
    lines = f.readlines()
    f.close()
    for line in lines:
        [x for x in lines if '1978' print x]

2 ответа

Назначьте результат понимания списка.

with open('Names.csv') as f:
    lines = [line for lin in f if '1978' in line]
with open("Names.csv") as fh:
    for line in fh:
        if '1978' in line:
            print line

Обратите внимание, что есть стандартный библиотечный модуль для работы с CSV-файлами, но для ваших целей вам, похоже, ничего этого не нужно; приведенный выше фрагмент кода должен делать. Однако, если ваши потребности станут более сложными, вы можете сделать себе одолжение, читая CSV как CSV, а не как простой текст.

Другие вопросы по тегам