У меня есть большое количество текстовых файлов для чтения из Python. Каждый файл структурирован как в следующем примере:Прочитать и выбрать определенные строки из текстового файла regex Python
------------------------------------------------------------------------------
\\
Paper: some_integer
From: <some_email_address>
Date: Wed, 4 Apr 2001 12:08:13 GMT (27kb)
Date (revised v2): Tue, 8 May 2001 10:39:33 GMT (27kb)
Title: some_title
Authors: name_1, name_2
Comments: 28 pages, JHEP latex
\\
blablabla (this is a multiline abstract of the paper)
blablabla
blablabla
\\
Я хотел бы автоматически извлекать и хранить (например, в виде списка) в Title
, Authors
и аннотацию (текст между вторым и третьим \\
- обратите внимание, что он начинается с отступа) из каждого текстового файла. Также обратите внимание, что белая линия между Date (revised)
и Title
действительно существует (это не опечатка, которую я представил).
Мои попытки до сих пор повлекшие (я показываю шаги для одного текстового файла, скажем, первый файл в списке):
filename = os.listdir(path)[0]
test = pd.read_csv(filename, header=None, delimiter="\t")
Который дает мне:
0
0 ----------------------------------------------...
1 \\
2 Paper: some_integer
3 From: <some_email_address>
4 Date: Wed, 4 Apr 2001 12:08:13 GMT (27kb)
5 Date (revised v2): Tue, 8 May 2001 10:39:33 G...
6 Title: some_title...
7 Authors: name_1, name_2
8 Comments: 28 pages, JHEP latex
9 Report-no: DUKE-CGTP-00-01
10 \\
11 blabla...
12 blabla...
13 blabla...
14 \\
I может выбрать данную строку (например, один с изображением названия) с:
test[test[0].str.contains("Title")].to_string()
Но это усеченный, это не чистый string (появляются некоторые атрибуты), и я считаю, что весь этот подход на основе панд довольно утомительный на самом деле ... Должен быть более простой способ прямого выбора интересующих строк из текстового файла с помощью регулярного выражения. По крайней мере, я надеюсь на это ...
Может сами данные можно получить в более машиночитаемом формате, скажем XML? Если это опубликованная запись, весь db можно загрузить как xml IIRC, что очень удобно. –