gpt4 book ai didi

Python - 试图在单独的 py 文件中导入类

转载 作者:行者123 更新时间:2023-12-04 15:00:55 27 4
gpt4 key购买 nike

我已经使用 python 工作了大约 2 周,我已经能够导入访问数据库并存储来自 sql select 的值,但是其中一个字段中嵌入了 html 标记。我正在尝试使用 html_parser,我在一个单独的 py 文件中创建了类 def,我将其导入到我的主文件中。当我尝试从我的主文件调用例程时,出现错误。这是我的主 py 文件中的命令

from html.parser import HTMLParser
import html_parser
parser = MyHTMLParser()

这是 html_parser.py 文件中的命令

 class MyHTMLParser(HTMLParser):
def handle_starttag(self, tag, attrs):
print("Encountered a start tag:", tag)

def handle_endtag(self, tag):
print("Encountered an end tag :", tag)

def handle_data(self, data):
print("Encountered some data :", data)
global data_str
data_str = data_str + "!#@@@@@#!" + data

global data_str
data_str = ""

这是当我使用主 py 文件从命令提示符运行 python 时出现的错误

C:\Users\Owner\AppData\Local\Programs\Python\Python39>python py_script8.py导入 MyHTMLParser 类追溯(最近一次通话):文件“C:\Users\Owner\AppData\Local\Programs\Python\Python39\py_script8.py”,第 36 行,位于解析器 = MyHTMLParser()NameError: name 'MyHTMLParser' is not definedBlockquote

如果有人有任何见解,将不胜感激。 (这是与 python 一起工作的乐趣。)

**** 解决方案 *****MM真的帮了我!非常感谢!这是我所做的-

靠近主 py 文件的顶部,已将其添加以运行 html_parser。

import html_parser

if __name__ == '__main__':

在一个从 for 循环运行的函数中,循环遍历存储在从导入的访问数据库中获取所有行的 sql 语句中的记录

 global r_str
parser.data_str = ""

parser.feed(r_str)
#print(parser.data_str)
r_str = parser.data_str

html_parser.py 的内容是这样的:

from html.parser import HTMLParser

class MyHTMLParser(HTMLParser):

def __init__(self):
# Superclass initialization.
super().__init__()
# Variables are initialized here.
self.data_str = ""

def handle_starttag(self, tag, attrs):
print("Encountered a start tag:", tag)

def handle_endtag(self, tag):
print("Encountered an end tag :", tag)

def handle_data(self, data):
print("Encountered some data :", data)
self.data_str += "!#@@@@@#!" + data

最佳答案

更正了答案。

请试试这个。
主要代码写在task.py中。

任务.py

import html_parser

if __name__ == '__main__':
# The initialization of the class of the external file(module name+.py) is "module name.classname()".
parser = html_parser.MyHTMLParser()
# Insert the HTML here.
parser.feed('<html><head><title>Parser Test</title></head>'
'<body><BLOCKQUOTE>Quoted content</BLOCKQUOTE></body></html>')
# In this way, you can retrieve the contents stored in the parser class.
print(parser.data_str)

html_parser.py

from html.parser import HTMLParser

class MyHTMLParser(HTMLParser):

def __init__(self):
# Superclass initialization.
super().__init__()
# Variables are initialized here.
self.data_str = ""

def handle_starttag(self, tag, attrs):
print("Encountered a start tag:", tag)

def handle_endtag(self, tag):
print("Encountered an end tag :", tag)

def handle_data(self, data):
print("Encountered some data :", data)
self.data_str += "!#@@@@@#!" + data

预期输出如下。

Encountered a start tag: html
Encountered a start tag: head
Encountered a start tag: title
Encountered some data : Parser Test
Encountered an end tag : title
Encountered an end tag : head
Encountered a start tag: body
Encountered a start tag: blockquote
Encountered some data : Quoted content
Encountered an end tag : blockquote
Encountered an end tag : body
Encountered an end tag : html
!#@@@@@#!Parser Test!#@@@@@#!Quoted content

关于Python - 试图在单独的 py 文件中导入类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66961661/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com