Мне нужно обработать большой текстовый файл, содержащий информацию о научных публикациях, экспортированных со страницы поиска ScienceDirect. Я хочу хранить данные в массиве массивов, так что каждая бумага представляет собой массив, и все документы хранятся в большем массиве.Python: прочитать текстовый файл в массиве - неравномерное распределение строк
Хорошая часть состоит в том, что каждая строка соответствует значению, которое я хочу поместить в массив, и что между документами существует пустая строка. Проблема заключается в том, что каждая бумага имеет различное число линий, связанных с ним, в пределах от 2 до 6. Пример данных будет:
[Authors, title, journal, date]
[(digital object identifier)]
[(link to ScienceDirect website)]
[Abstract: Abstract]
[It has been shown ...]
[Authors, title, journal, date]
[(digital object identifier)]
[(link to ScienceDirect website)]
[Abstract: Abstract]
[It has been shown ...]
[Keywords]
[Authors, title, journal, date]
[(digital object identifier)]
и так далее. Желательной структурой данных будет ArrayAllPapers [Paper-1, Paper-2, ..., Paper-n], где каждая бумага представляет собой массив Paper-1 [авторская строка, doi-line и т. Д.]
Я могу прочитать файл в python по строкам в виде массива, но затем столкнулся с проблемой разрезания списка на основе элемента списка (в данном случае «\ n»). Я нашел решения этой проблемы для наборов данных с равным интервалом между строками для объектов, большинство из которых написано для списков, но ни одно из них не работает для неравного распределения. Возможно, мне нужно сначала записать в текстовый файл, чтобы заполнить «отсутствующие» строки, чтобы создать равный дистрибутив?
Я все еще учусь работать с Python (некоторый опыт работы с MatLab), поэтому, пожалуйста, извините меня, если есть очевидное решение для этого. Я попытался найти решение, но придумал пустой.
Любая помощь была бы высоко оценена!
Для справки, код, который я использую сейчас, чтобы войти в текстовый файл в массив:
import re, numpy
with open("test-abstracts-short.txt", "r") as text:
array = []
for line in text:
array.append(line)
Вы можете показать нам, что вы пробовали/код? – Railslide
конечно! поскольку я застрял в начале, пытаясь найти правильный подход, я думал, что код может не много добавить, но вот бит кода, который я использую, чтобы поместить строки в массив: import re, numpy 'with open ("test-abstracts-short.txt", "r") в виде текста: array = [] для строки в тексте: array.append (строка) ' Я импортирую регулярные выражения, потому что я пытался сделать что-то с этим, но не удалось. Кроме того, я счастлив сделать больше исследований и обучения самостоятельно, если только кто-то может указать мне в правильном направлении. –
Кроме того, как вы можете видеть из моего профиля, это мой первый вопрос на форуме, пожалуйста, извините за любые ошибки форматирования/этикета, которые я могу сделать (возможно, как код публикации в комментарии? Он, кажется, не форматирует правильно в строки, возможно, я должен добавить его на главный пост?) –