简体   繁体   中英

Extract between parenthesis list Python

I have a big list from a txt file that I want to extract, I have been looking this for days and no luck.... I will appreciate anyone that can help me out... it will save me months and months of work thanks MUCH APPRECIATED !!!

My code:
import re
import os
import requests
from bs4 import BeautifulSoup
def n(f):
    s = []
    for l in range(1):
        l = f.readline()
        if l:
            s.append(l)
    return s
b = open("lol.txt",'r', encoding='utf8')
c = n(b)
while len(c) > 0:
    for l in c:
        s = re.findall(r'\((.*?) *\)',l)
        print(s, sep='\n')
    c = n(b)
b.close()
Input:
(1,'4556','Книга включает в себя теорию действительных чисел, теорию пределов, теорию непрерывности функций, дифференциальное и интегральное исчисления функций одной переменной и их приложения, дифференциальное исчисление функций многих переменных и теорию неявных функций','','2011-01-29 09:31:10'),(2,'4557','Учебник представляет собой вторую часть (ч.1 - 1985) курса математического анализа. В книге рассмотрены теория числовых и функциональных рядов, теория кратных, криволинейных и поверхностных интегралов, теория поля (включая дифференциальные формы), теория интегралов, зависящих от параметра, и теория рядов и интегралов Фурье. Особенность книги - три четко отделяемых друг от друга уровня изложения: облегченный, основной и повышенный, что позволяет использовать ее как студентам технических ВУЗов с углубленным изучением математического анализа, так и студентам механико-математических факультетов университетов.','','2013-08-18 20:38:22')
# I want this type of Output
Output:
(1,'4556','Книга включает в себя теорию действительных чисел, теорию пределов, теорию непрерывности функций, дифференциальное и интегральное исчисления функций одной переменной и их приложения, дифференциальное исчисление функций многих переменных и теорию неявных функций','','2011-01-29 09:31:10')
(2,'4557','Учебник представляет собой вторую часть (ч.1 - 1985) курса математического анализа. В книге рассмотрены теория числовых и функциональных рядов, теория кратных, криволинейных и поверхностных интегралов, теория поля (включая дифференциальные формы), теория интегралов, зависящих от параметра, и теория рядов и интегралов Фурье. Особенность книги - три четко отделяемых друг от друга уровня изложения: облегченный, основной и повышенный, что позволяет использовать ее как студентам технических ВУЗов с углубленным изучением математического анализа, так и студентам механико-математических факультетов университетов.','','2013-08-18 20:38:22')

I don't understand exactly what you want, but here's my try:

with open('lol.txt', '+r') as f:
    data = [l for l in eval(f.read())]

print('Output:\n')
for d in data:
    print(d)

Code

Option 1--Using ast

import ast

with open('a.txt', 'r', encoding='utf8') as f:
    for x in ast.literal_eval(f.read()):
        print(x)

Option 2--Using Regex

import re

with open('a.txt', 'r', encoding='utf8') as f:
    for line in f:
        for x in re.findall(r"\(\d+,\'.*?\'\)", line):
            print(x)

Output (both options)

(1,'4556','Книга включает в себя теорию действительных чисел, теорию пределов, теорию непрерывности функций, дифференциальное и интегральное исчисления функций одной переменной и их приложения, дифференциальное исчисление функций многих переменных и теорию неявных функций','','2011-01-29 09:31:10')
(2,'4557','Учебник представляет собой вторую часть (ч.1 - 1985) курса математического анализа. В книге рассмотрены теория числовых и функциональных рядов, теория кратных, криволинейных и поверхностных интегралов, теория поля (включая дифференциальные формы), теория интегралов, зависящих от параметра, и теория рядов и интегралов Фурье. Особенность книги - три четко отделяемых друг от друга уровня изложения: облегченный, основной и повышенный, что позволяет использовать ее как студентам технических ВУЗов с углубленным изучением математического анализа, так и студентам механико-математических факультетов университетов.','','2013-08-18 20:38:22')

Regex Explanation

Regex pattern: r"(\d+,'.*?')"

\(                        - start with left paren 
\d+                      - one or more digits 
,                        - comma 
\'                       - single quote 
.*?                      - lazy wildcard character match
\'                       - single quote 
\)                       - closing paren

You just need to write just 3 lines of code.

with open("lol.txt", encoding = 'utf-8') as f:
    for line in eval(f.read()):
        print(line)

Input:

Input:
(1,'4556','Книга включает в себя теорию действительных чисел, теорию пределов, теорию непрерывности функций, дифференциальное и интегральное исчисления функций одной переменной и их приложения, дифференциальное исчисление функций многих переменных и теорию неявных функций','','2011-01-29 09:31:10'),(2,'4557','Учебник представляет собой вторую часть (ч.1 - 1985) курса математического анализа. В книге рассмотрены теория числовых и функциональных рядов, теория кратных, криволинейных и поверхностных интегралов, теория поля (включая дифференциальные формы), теория интегралов, зависящих от параметра, и теория рядов и интегралов Фурье. Особенность книги - три четко отделяемых друг от друга уровня изложения: облегченный, основной и повышенный, что позволяет использовать ее как студентам технических ВУЗов с углубленным изучением математического анализа, так и студентам механико-математических факультетов университетов.','','2013-08-18 20:38:22')

Output:

(1,'4556','Книга включает в себя теорию действительных чисел, теорию пределов, теорию непрерывности функций, дифференциальное и интегральное исчисления функций одной переменной и их приложения, дифференциальное исчисление функций многих переменных и теорию неявных функций','','2011-01-29 09:31:10')
(2,'4557','Учебник представляет собой вторую часть (ч.1 - 1985) курса математического анализа. В книге рассмотрены теория числовых и функциональных рядов, теория кратных, криволинейных и поверхностных интегралов, теория поля (включая дифференциальные формы), теория интегралов, зависящих от параметра, и теория рядов и интегралов Фурье. Особенность книги - три четко отделяемых друг от друга уровня изложения: облегченный, основной и повышенный, что позволяет использовать ее как студентам технических ВУЗов с углубленным изучением математического анализа, так и студентам механико-математических факультетов университетов.','','2013-08-18 20:38:22')

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM