首页 > 解决方案 > 我收到 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()

标签: pythonpython-3.xdata-analysis

解决方案


您需要cur在构造函数中使用它之前初始化属性。也请在此处包含您的__init__()功能定义。


推荐阅读