python - 我收到 AttributeError: 'TBXTools' 没有属性 'cur'
问题描述
我有一个名为 TBXTools 的文件,我正在尝试通过另一个文件运行它
from TBXTools import *
e=TBXTools()
看起来很简单是不是。但是当我运行它时,我得到了这个错误:
AttributeError:“TBXTools”没有属性“cur”
现在我有了那个方法,就在“TBXTools”文件上。那么有什么问题呢?请帮忙
def load_sl_tl_corpus(self,slcorpusfile, tlcorpusfile, encoding="utf-8"):
'''Loads a bilingual corpus in Moses format (that is, in two independent files. It expects one segment per line.'''
self.slcf=codecs.open(slcorpusfile,"r",encoding=encoding)
self.tlcf=codecs.open(tlcorpusfile,"r",encoding=encoding)
self.sl_data=[]
self.tl_data=[]
self.continserts=0
while 1:
self.sl_segment=self.slcf.readline()
if not self.sl_segment:
break
self.tl_segment=self.tlcf.readline()
self.continserts+=1
self.max_id_corpus+=1
self.sl_record=[]
self.tl_record=[]
self.sl_segment=self.sl_segment.rstrip()
self.tl_segment=self.tl_segment.rstrip()
self.sl_record.append(self.max_id_corpus)
self.tl_record.append(self.max_id_corpus)
self.sl_record.append(self.sl_segment)
self.tl_record.append(self.tl_segment)
self.sl_data.append(self.sl_record)
self.tl_data.append(self.tl_record)
if self.continserts==self.maxinserts:
self.cur.executemany("INSERT INTO sl_corpus (id, segment) VALUES (?,?)",self.sl_data)
self.cur.executemany("INSERT INTO tl_corpus (id, segment) VALUES (?,?)",self.tl_data)
self.sl_data=[]
self.tl_data=[]
self.continserts=0
with self.conn:
self.cur.executemany("INSERT INTO sl_corpus (id, segment) VALUES (?,?)",self.sl_data)
self.cur.executemany("INSERT INTO tl_corpus (id, segment) VALUES (?,?)",self.tl_data)
self.conn.commit()
我这样称呼它:
e.load_sl_corpus("Main corpus.txt")
注意:我试图运行它,python -tt
但我得到了同样的错误
这是我的输入文件中的一个小样本:
Clearance 以销售零售额的百分比形式返回价值。每次在该地点收到此项目时,采购订单估计的到岸成本,或主要供应商成本,具体取决于销售系统选项。每次在该地点收到此项目时,采购订单估计的到岸成本,或主要供应商成本,具体取决于销售系统选项。由于常规销售而导致的原始计划降价金额的零售价值。
报告期开始时某个地点的所有库存状态代码中不可用清仓库存的数量。在考虑退货和取消后,流入净销售额的需求百分比。得出退货和取消的总和除以需求销售零售价值,从 1 中减去得到反向百分比值。@RICP2@ - 收缩非 Clr 成本 Amt 客户细分职业代码 灵活的事实列 31 用于文本或非数字值。
编辑:
我已经创建了一个函数来连接我的数据库,请看下面:
def create_project(self,project_name,sl_lang,tl_lang="null",overwrite=False):
'''Opens a project. If the project already exists, it raises an exception. To avoid the exception use overwrite=True. To open existing projects, use the open_project method.'''
if os.path.isfile(project_name) and not overwrite:
raise Exception("This file already exists")
else:
if os.path.isfile(project_name) and overwrite:
os.remove(project_name)
self.sl_lang=sl_lang
self.tl_lang=tl_lang
self.conn=sqlite3.connect(project_name)
self.cur = self.conn.cursor()
self.cur2 = self.conn.cursor()
with self.conn:
self.cur = self.conn.cursor()
解决方案
您需要cur
在构造函数中使用它之前初始化属性。也请在此处包含您的__init__()
功能定义。
推荐阅读
- php - 以模型为参数的资源控制器方法不起作用
- xquery - 创建并运行一次“计划任务”
- iis - 如何在 web.config 中用不同的名称重写文件夹名称?
- r - 在这个图中我的自定义调色板有什么问题?
- bash - 如何更快地制作一个在 k/v 对上循环调用 awk 的脚本?
- php - mysqld_safe 来自 pid 文件 mysqld.pid 的 mysqld 结束
- java - 如何将自定义按钮和文本添加到 android 导航?(以 X 身份登录)
- wpf - 如何将值从页面传递到文本框到WPF中的主窗体?
- linux - Debian:如何安装打过补丁的内核?
- php - 强制重定向到 PHP 中的登录页面