Контекст:
- Проблема, которую я пытаюсь решить, - прочитать файл CSV, проверить, имеет ли переменная в файле CSV определенное значение, и распечатать
Вопросы:
Возможна ситуация, когда файл помечен как нечитаемый. Если это произойдет, будет ли исключение? Если да - Как я могу поймать исключение?
Также может быть исключение, если файл отсутствует. Итак, исключение для файла отсутствует первым, а затем исключение для файла не читается?
Код:
# reader module from csv will allow us to read the csv file.
# aliasing it to csv_reader so that its more readable on what the variable does.
from csv import reader as csv_reader
# Encasing the code in try and catch block to catch potential exceptions dealing with accessing file.
try:
# Opening the file and getting a filehandle
with open("input.csv") as file_handle:
# reading the csv file using the csvreader
people = csv_reader(file_handle)
# accessing the headers (i.e. column names) for the file.
# How would this come in handy? -
# Later when we create a temporary dictionary, we can access the data using the column names as keys
headers = next(people)
# going thru each of the data-row of the csv
for row in people:
# Zipping the headers (column names) and data for the row to create dictionary
#
# Dictionary which will look like -
#
# Key | Value
# --------------
# "name" - "John"
# "age" - "30"
# "city" - "Boston"
#
person = dict(zip(headers, row))
# Now that we have a python dictionary, we can access the column names using the dictionary keys
if int(person["age"]) >= 30:
print("Name:{name}, City:{city}".format(name=person["name"], city=person["city"]))
except FileNotFoundError:
print("Given file isnt present")