繁体   English   中英

括号列表之间的提取 Python

[英]Extract between parenthesis list Python

我有一个要提取的 txt 文件中的大列表,我已经找了好几天了,但没有运气......我会感谢任何可以帮助我的人......它将为我节省数月和数月的工作非常感谢!

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')

我不明白你想要什么,但这是我的尝试:

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

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

代码

选项 1--使用ast

import ast

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

选项 2--使用正则表达式

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(两个选项)

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

正则表达式解释

正则表达式模式: r"(\d+,'.*?')"

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

您只需要编写 3 行代码。

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

输入:

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')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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