【问题标题】:Extract between parenthesis list Python括号列表Python之间的提取
【发布时间】:2021-03-20 03:23:01
【问题描述】:

我有一个要提取的 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')

【问题讨论】:

  • 是关于每行打印 1 个元组的问题吗?如果是这种情况,您应该缩短示例以专注于该问题吗?或者你有错误信息?

标签: python python-3.x database string list


【解决方案1】:

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

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

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

【讨论】:

  • @Tiki--由于俄语字符,您的open() 不需要指定编码吗?我按原样(在 Windows 上)收到错误。
  • 我不能告诉你,在 Ubuntu 中它没有任何问题。
【解决方案2】:

代码

选项 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)

输出(两个选项)

(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

【讨论】:

  • DarrylG 非常感谢你,你的代码解决了所有问题......我不知道是谁把你放在 -1 上......你应该是 +1000 谢谢 :) .....
  • @Leoley--很高兴为您提供帮助。我添加了第二个选项,所以现在两个:1)AST,2)正则表达式。
【解决方案3】:

您只需要编写 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')

输出:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-19
    • 2020-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-27
    • 2018-12-24
    • 1970-01-01
    相关资源
    最近更新 更多