⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 textstat.pyw

📁 documents classification and words statiscs TF/IDF etc
💻 PYW
📖 第 1 页 / 共 4 页
字号:
            # Stian Haklev: change tab so we can change back afterwards,             # and get an updated list view - at least needed on Mac            self.tabPages.ChangePage(s['KorpusTab'])                        self.status.set(s['StatusSuchKonk'])            self.konkliste.delete(0, END)            konkRes = self.korpus.getWordConc( pattern=such, ganzWort=self.konkGanzewoerter.get(), grossklein=self.konkGrossklein.get(),                        cL=self.konkContextL.get(), cR=self.konkContextR.get(),                        sort=self.sortModusKonk.get(), markKonk=self.markKonk.get() )            self.suchwort.delete(0, END)            self.suchwort.insert(END, self.korpus.suchKonk)            for x in konkRes:                self.konkliste.insert(END, (x[0],))            self.tabPages.ChangePage(s['ConcTab'])            self.status.set(s['StatusTreffer'] % self.konkliste.size() )        except StandardError, details:            self.warnung(titel=s['Error'], text=s['ErrSelect'])        self.busyCursorOff()    def zeigZitat(self, event=''):        self.zitat.delete(1.0, END)        konk = self.konkliste.curselection()        konk = int(konk[0])        cL = int(cfg['zitContextL'])        cR = int(cfg['zitContextR'])        res = self.korpus.getContext(konk, contextL=cL, contextR=cR)        self.zitat.insert(END, '\n')        self.zitat.insert(END, self.korpus.db[self.korpus.zitatDatei]['path'], ('oeffnen', 'blau'))        self.zitat.insert(END, s['ZToeffnen2'])        self.zitat.insert(END, '\n- - - - -\n\n')        self.zitat.insert(END, res[0])        self.zitat.insert(END, res[1], 'rot')        self.zitat.insert(END, res[2])        self.tabPages.ChangePage(s['ZitatTab'])    def zitatDatei_oeffnen(self, event=''):        try:            # etwas krampfig, da os.startfile()und webbrowser keine             # Unicode-Dateinamen unterstuetzen            dateipfad = self.korpus.db[self.korpus.zitatDatei]['path']            dateipfad = dateipfad.encode(sys.getfilesystemencoding())            webbrowser.open(dateipfad)        except StandardError, details:            meldung = s['ErrFileOpen'] + '\n\n' + str(details)            self.warnung(titel=s['Error'], text=meldung)############ Allerlei Hilfsfunktionen    def optionen_speichern(self):        try:            cfg['Benutzersprache'] = self.sprache_aendern.get()            cfg['fenster'] = self.root.geometry()            cfg['freqMin'] = self.minFreq.get()            cfg['freqMax'] = self.maxFreq.get()            cfg['konkContextL'] = self.konkContextL.get()            cfg['konkContextR'] = self.konkContextR.get()            cfg['FileKodierung'] = self.dateiart.get()            try:                cfg['LetzteKorpusFiles0'] = self.LetzteKorpusFiles[0]                cfg['LetzteKorpusFiles1'] = self.LetzteKorpusFiles[1]                cfg['LetzteKorpusFiles2'] = self.LetzteKorpusFiles[2]                cfg['LetzteKorpusFiles3'] = self.LetzteKorpusFiles[3]            except:                pass            f = open(cfgFile, 'w')            cPickle.dump(cfg, f)            f.close()        except:            self.warnung(s['Error'], s['ErrOptSave'])    def add_recent(self,filename=''):        filename = os.path.normpath(filename)        # SH: adds recent file to the recent files list, removing it first if it already exists        if(self.LetzteKorpusFiles.count(filename)) > 0:            self.LetzteKorpusFiles.remove(filename)        self.LetzteKorpusFiles.insert(0,filename)        self.update_recentfiles_menu()    def remove_recent(self,filename=''):           # SH: remove file from recent files list if it is on the list        if(self.LetzteKorpusFiles.count(filename)) > 0:            self.LetzteKorpusFiles.remove(filename)            self.update_recentfiles_menu()    # SH: update recent files - deletes all previous menu entries and adds the last four opened    def update_recentfiles_menu(self):        try:											 # SH:designed so that if there are only 2 latest files,            self.recentfilesmenu.delete(0,3)			 # they will be added, and it will fail gracefully            filename=self.LetzteKorpusFiles[0]			 # SH: check if there are any latest files            self.filemenu.entryconfigure(6,state=ACTIVE) # SH: only if the previous command worked, ie there is at least 														 # one active file		               for i in range(0,4):                f = self.LetzteKorpusFiles[i]                callback = self.__korpus_open(f)                self.recentfilesmenu.add_command(label=f, underline=0, command = callback)        except:            pass		    # SH: helping function for the open recent files since Tk Menubuttons cannot accept commands with arguments     # (idea taken from IDLE source)    def __korpus_open(self,f):        def korpus_open_caller(f=f):            self.korpus_open(f)        return korpus_open_caller    def export2excel(self):        wortliste = self.freqliste.get(0, END)        if len(wortliste) > 65000:            self.warnung(s['ErrExport'], s['ErrExcel65K'] % len(wortliste))        else:            try:                if len(wortliste) > 1:                    wortliste = [(a.strip(), b.strip()) for (a, b) in wortliste]                    meinXL = Dispatch("Excel.Application")                    meinXL.Visible = 1                    meinXL.Workbooks.Add()                    tabelle = meinXL.Workbooks(1).Sheets(1)                    tabelle.Cells(2,1).Value = 'ACHTUNG - ATTENTION'                    tabelle.Cells(3,1).Value = 'Dies kann dauern...'                    tabelle.Cells(4,1).Value = 'This can take a while...'                    titel = '%(Titel)s %(Version)s' % s                    titel = unicode(titel, 'latin-1')                    tabelle.Cells(2,4).Value = titel                    tabelle.Cells(3,4).Value = unicode(s['Copyright'], 'latin-1')                    tabelle.Cells(4,4).Value = unicode(s['ProgURL'], 'latin-1')                    tabelle.Range(tabelle.Cells(1,1), tabelle.Cells(len(wortliste),2)).Value=wortliste                else:                    self.warnung(s['ErrExport'], s['ErrNoFreqList'])            except:                self.warnung(s['ErrExport'], s['ErrExcel'])    def export2csv(self):        try:            wortliste = self.freqliste.get(0, END)            wortliste = [(a.strip(), b.strip()) for (a, b) in wortliste]            inhalt = StringIO.StringIO()            for x in wortliste:                inhalt.write( '%s, %s\n' % (x[0], x[1]) )            # zum Schreiben holen wir uns erst die gew黱schte Kodierung            # kodier = self.dateiart.get()            # 09/2008 gestrichen: wir schreiben immer UTF-8            inhalt = inhalt.getvalue()            inhalt = inhalt.encode('utf_8', 'replace')            d = tkFileDialog.asksaveasfile(defaultextension='.csv', initialdir=cfg['KorpDir'])            d.write(inhalt)            d.close()            self.status.set(s['StatusExpFreq'])        except:            self.warnung(s['ErrExport'], s['ErrExpFreq'])    def export2word(self):        konkliste = self.konkliste.get(0,END)        if len(konkliste) > 0:            inhalt = "%(Titel)s %(Version)s\n%(Copyright)s\n(%(ExportHinweis)s)\n\n" % s            inhalt = unicode(inhalt, 'latin-1')            inhalt = inhalt + '\n\n'.join(konkliste)            try:                # Word starten, leeres Document 鰂fnen, Text einf黦en                meinWord = Dispatch('Word.Application')                meinWord.Visible = 1                meinDoc = meinWord.Documents.Add()                meinWo = meinDoc.Range(0,0)                meinWo.InsertBefore(inhalt)            except:                self.warnung(s['ErrExport'], s['ErrWord'])        else:            self.warnung(s['ErrExport'], s['ErrNoKonkList'])    def export2txt(self):        konkliste = self.konkliste.get(0,END)        if len(konkliste) > 1:            inhalt = "%(Titel)s %(Version)s\n%(Copyright)s\n(%(ExportHinweis)s)\n\n" % s            inhalt = unicode(inhalt, 'latin-1')            inhalt = inhalt + '\n'.join(konkliste)            try:                # zum Schreiben holen wir uns erst die gew黱schte Kodierung                # kodier = self.dateiart.get()                # 09/2008 gestrichen: wir schreiben immer UTF-8                inhalt = inhalt.encode('utf_8', 'replace')                d = tkFileDialog.asksaveasfile(defaultextension='.txt', initialdir=cfg['KorpDir'])                d.write(inhalt)                d.close()                self.status.set(s['StatusExpKonk'])            except:                self.warnung(s['ErrExport'], s['ErrExpKonk'])    def copy2clipboard(self):        self.root.clipboard_clear()        txt = ''        if self.tabPages.GetActivePage() == s['ZitatTab']:            try:                txt = self.zitat.get(SEL_FIRST, SEL_LAST)            except TclError, details:                self.warnung(titel=s['Error'], text=s['ErrSelect'])        elif self.tabPages.GetActivePage() == s['ConcTab']:            txt = self.konkliste.get(self.konkliste.curselection())[0]        elif self.tabPages.GetActivePage() == s['FormenTab']:            a,b = self.freqliste.get(self.freqliste.curselection())            a = a.strip()            b = b.strip()            txt = a + ' - ' + b        elif self.tabPages.GetActivePage() == s['KorpusTab']:            l = []            for i in self.datliste.curselection():                l.append(self.datliste.get(i))                txt = '\n'.join(l)        self.root.clipboard_append(txt)        self.status.set(s['StatusClip'])        # self.info('', txt)    def busyCursorOn(self):        # Cursor auf 'busy/wait'        self.root.config(cursor='watch')        self.root.update_idletasks()        self.root.update()    def busyCursorOff(self):        # Cursor auf 'normal'        self.root.config(cursor='')        self.root.update_idletasks()        self.root.update()    def statusAktualisieren(self, event=''):        if self.tabPages.GetActivePage() == s['FormenTab']:            if self.korpus != None:                self.status.set( s['StatusFormen'] % (self.freqliste.size(), self.korpus.anzahlTokens) )            else:                self.status.set(' ')        if self.tabPages.GetActivePage() == s['ConcTab']:            self.status.set( s['StatusTreffer'] % self.konkliste.size() )        if self.tabPages.GetActivePage() == s['Korpus']:            if self.korpus != None:                self.status.set( s['StatusKorpDat'] % (self.korpus.getDbName(), self.dateiart.get()) )            else:                self.status.set( s['Willkommen'] )    def info(self, titel='', text=''):        tkMessageBox.showinfo(titel, text)    def warnung(self, titel='', text=''):        tkMessageBox.showwarning(titel, text)    def sprachwarnung(self):        self.optionen_speichern()        self.warnung(s['SpracheAendern'], s['SpracheInfo'])    def about(self):        # self.info('', self.tabPages.GetActivePage())        info = "%(Titel)s %(Version)s\n(%(VersionDatum)s)\n\n%(Copyright)s\n%(eMail)s\n\n%(ProgURL)s  \n\n%(ProgInfo)s" % s        self.info('TextSTAT', info)    def regex_hilfe(self):        try:            webbrowser.open("http://docs.python.org/lib/re-syntax.html")        except:            self.warnung(titel=s['Error'], text=s['ErrFileOpen'])    def ende(self):        self.optionen_speichern()        if self.korpus != None and self.korpus.dbGeaendert == 1:             # self.info(text= str(self.korpus.dbGeaendert))            m = tkMessageBox.Message(                        title=s['ProgBeenden'],                        message=s['AbfrageEnde'],                        icon=tkMessageBox.QUESTION,                        type=tkMessageBox.YESNOCANCEL)            reply = m.show()            if reply == 'yes':                self.korpus_save()                self.root.destroy()                self.root.quit()            elif reply == 'no':                self.root.destroy()                self.root.quit()            else:                pass        else:            self.root.destroy()            self.root.quit()if __name__ == '__main__':    app = GUI(root)    root.mainloop()

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -