Вы сбрасываете sep
каждый раз, когда перебираете новую строку. Допустим, файл имеет 2 строки:
with open('2018-01-btp-street.csv', 'r') as file:
for row in file: # first loop:
sep = row.split(',') # sep now contains all items in the first row that were separated by commas.
#second loop: sep now only(!) contains all items in the SECOND row that were separated by commas.
Вы можете проверить это, добавив print(sep)
сразу после определения sep
внутри цикла.
Теперь вам нужен второй столбец в каждой строке. string.split(other_string)
возвращает список всех отдельных фрагментов строки, которые были разделены other_string
. Таким образом, вы можете хранить каждый из этих списков в новом списке, например:
all_values = []
with open('2018-01-btp-street.csv', 'r') as file:
for row in file:
sep = row.split(',')
all_values.append(sep) # this is the important part. sep will still be reset every loop, but the values are now stored in all_values.
Теперь у вас есть список списков. Чтобы получить второе значение для каждого списка, выполните
for l in all_values:
print(l[1])
Вы также можете использовать список понимания , который делает то же самое:
with open('2018-01-btp-street.csv', 'r') as file:
all_values = [row.split(',') for row in file]
all_values
выглядит так:
[[row1_col1, row1_col2, row1_col3, ...], [row2_col1, row2_col2, row2_col3,...], ...]
Или, чтобы получить списки всех столбцов вместо:
with open('2018-01-btp-street.csv', 'r') as file:
all_values = [row.split(',') for row in file]
all_columns = [[l[i] for l in all_values] for i in range(len(all_values[0]))]
, который даст вам список, который выглядит как
[[row1_col1, row2_col1, row3_col1], [row1_col2, row2_col2, row3_col2], ...]
и теперь вы можете использовать
print(all_columns[1])
чтобы получить все значения второго столбца.