Задать вопрос
@dandyvssega
Начинаю кодить

Как просмотреть файл по url и записать в массив построчно?

Всем добра.Немогу донать,как прочитать простой файл по http и записать его каждую строку в новый элемент массива.
Делаю так
import urllib.request

res = urllib.request.urlopen('http://www.gfrag.co.za/README.txt').readlines()
infa=[]
infa.append(res)
print (infa)

Получаю что весь файл записывается в первый элемент массива.А нужно чтобы каждая строка это новый элемент массива.Не хватает понималки как это сделать.И сразу будет следующей просьба,подскажите пожалуйста как удалить потом ненужные элементы,допустим которые содержат текст
Drupal

Большое спасибо за помощь и внимание.
  • Вопрос задан
  • 873 просмотра
Подписаться 2 Оценить 1 комментарий
Решения вопроса 1
@iSergios
Python-разработчик
Гм, вообще-то искомый массив Вы получили уже на этой строке:
res = urllib.request.urlopen('http://www.gfrag.co.za/README.txt').readlines()

Можете в этом убедиться:
>>> type(res)
<class 'list'>
>>> res[1]
b'CONTENTS OF THIS FILE\n'

что вас смущает?

А так:
infa.append(res)

Вы поместили весь список res в первый элемент списка infa:
>>> infa[0][1]
b'CONTENTS OF THIS FILE\n'


upd:

Метод readlines() уже разбил ваш текст построчно. Таким образом, список res содержит строки байт из текста. Для начала вам надо перевести bytes в string с помощью метода decode().
text_lines = [t.decode() for t in res]
Далее уже работайте со списком как вам угодно. Можно, к примеру, получить список со всеми вхождениями этого вашего 'Drupal':
excess_lines=[c for c in text_lines if 'Drupal' in c]

или сформировать список без них:
final_lines=[c for c in text_lines if 'Drupal' not in c]
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
leahch
@leahch
3D специалист. Dолго, Dорого, Dерьмово.
pip install requests
import requests
from io import BytesIO
from pprint import pprint
r = requests.get('http://www.gfrag.co.za/README.txt')
f = BytesIO(r.content)
infa = f.readlines()
pprint(infa)

Done.
Ответ написан
Комментировать
@dandyvssega Автор вопроса
Начинаю кодить
Пробовал всяко разно,в итоге в ошибку упираюсь
AttributeError: 'list' object has no attribute 'split'
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы