#python
#python
Вопрос:
Вот как выглядит часть текстового файла:
3 / Kingsbury Dr / Waterdale Rd / Bundoora
4 / Crissane Rd / Waterdale Rd / Heidelberg West
Я просто хочу получить второй элемент, который является экземпляром автобусной остановки (например, Kingsbury Dr, Crissane Rd) в списке. Вот что я пробовал до сих пор и не уверен, как поместить второй элемент в список
def loadData():
with open('BusRoute250.txt', 'r') as f:
busStopList = []
f_line = f.readline()
while f_line:
file_line_lst = list(f_line.strip().split('/'))
f_line = f.readline()
for f_line in file_line_lst:
busStopList.append()
print(busStopList)
Ссылка на содержимое текстового файла: https://docs.google.com/document/d/1ah1EAhro_5-pgqIDylFSjTyHI9fvylfErB8pFNZb36A/edit?usp=sharing
Ответ №1:
Попробуйте это:
def loadData():
with open('BusRoute250.txt', 'r') as f:
bus_stops = []
for line in f:
elements = line.strip().split('/')
if len(elements) > 0:
bus_stops.append(elements[1])
return bus_stops
#call function and print:
result = loadData()
print('n'.join(result)) # print as a column
Вам не нужно явно вызывать readline
для этой цели. Здесь мы будем использовать цикл for для перебора файла по одной строке за раз, проверки того, что строка содержит поля, и построения списка из каждого второго поля.
Это подход, который не требует внешних библиотек. Но если вы планируете выполнять какую-либо работу с текстом с разделителями, я бы посоветовал начать изучать Python pandas
.
Комментарии:
1. Спасибо за это! Как я могу распечатать этот список? Я пытался, и я не мог заставить его печатать, также я посмотрю на pandas 🙂
2. @Malan: смотрите дополнительные строки в моем ответе. Это превратит список в строку, каждый элемент которой будет разделен символом новой строки. При печати он будет печатать столбец. Обратите внимание, что это будет длиннее, чем у большинства мониторов. При желании вы можете приспособиться к своим потребностям с помощью других типов соединения.
Ответ №2:
Вам нужно добавить второй элемент списка, сформированного в результате split('/')
операции.
busStopList.append(file_line_lst[1])
while
Цикл немного неправильный. Это должно быть так:
while f_line:
file_line_lst = list(f_line.strip().split('/'))
busStopList.append(file_line_lst[1])
f_line = f.readline()