Загрузка конкретных данных из файла 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, а не как простой текст.