📄 textstat.pyw
字号:
self.status.set(self.korpus.getDbName()) self.root.title(s['Titel'] + ' - ' + self.korpus.getDbName()) self.zeigDateiliste() self.add_recent(filename=f) self.info(titel=s['CodePage'], text=s['KodierungInfo'] % cfg['FileKodierung']) except: self.warnung(titel=s['Error'], text=s['ErrKorpNew']) def korpus_open(self, filename=''): # Wenn anderes Korpus ge鰂fnet ist if self.korpus != None and self.korpus.dbGeaendert == 1: jn = tkMessageBox.askquestion(s['KorpusSave'], s['AbfrageSave']) if jn == 'yes': self.korpus_save() if filename=='': f = tkFileDialog.askopenfilename(initialdir=cfg['KorpDir'], title=s['KorpusOpen']) else: f=filename if f: self.korpus = None self.zeigDateiliste() try: # Default-Dir neu setzen self.korpus = Korpus.Korpus(self) self.korpus.openDb(f) cfg['KorpDir'] = os.path.dirname(f) self.korpusdatei = f self.status.set(self.korpus.getDbName()) self.root.title(s['Titel'] + ' - ' + self.korpus.getDbName()) self.zeigDateiliste() self.add_recent(filename=f) except StandardError, details: self.korpus = None self.root.title(s['Titel']) # s['ErrKorpOpen'] = s['ErrKorpOpen'] + '\n\n' + str(details) self.warnung(titel=s['Error'], text=s['ErrKorpOpen']) def korpus_hinzu(self): if self.korpus != None: try: f = tkFileDialog.askopenfilename(initialdir=cfg['KorpDir'], title=s['KorpusHinzu']) if f: # Default-Dir neu setzen cfg['KorpDir'] = os.path.dirname(f) self.korpus.addDb(f) self.status.set(self.korpus.getDbName()) self.zeigDateiliste() else: pass except: self.warnung(titel=s['Error'], text=s['ErrKorpOpen']) else: self.korpus_open() def korpus_import(self): if self.korpus != None: try: f = tkFileDialog.askopenfilename(initialdir=cfg['KorpDir'], title=s['KorpusOpen']) # Default-Dir neu setzen cfg['KorpDir'] = os.path.dirname(f) self.korpus.importOldKorpus(f) self.status.set(s['StatusKorpImp']) self.zeigDateiliste() except: self.warnung(s['Error'], s['ErrKorpImp']) else: self.warnung(s['Error'], s['ErrNoKorp']) def korpus_save(self): try: self.korpus.saveDb() # self.optionen_speichern() self.status.set(s['StatusKorpSave']) except: self.warnung(titel=s['Error'], text=s['ErrKorpSave']) def korpus_save_as(self): try: f = tkFileDialog.asksaveasfilename(initialdir=cfg['KorpDir'], defaultextension='.crp', title=s['KorpusNew2']) # Default-Dir neu setzen cfg['KorpDir'] = os.path.dirname(f) self.korpusdatei = f self.korpus.dbFile = f self.korpus.saveDb() self.optionen_speichern() self.status.set(s['StatusKorpSave']) self.root.title(s['Titel'] + ' - ' + self.korpus.getDbName()) self.add_recent(filename=f) except: self.warnung(titel=s['Error'], text=s['ErrKorpSave']) def korpus_del(self): if self.korpus != None: f = self.korpus.getDbPath() jn = tkMessageBox.askquestion(s['AskSure'], s['AskDelete'] % f) if jn == 'yes': f = self.korpus.getDbPath() self.korpus = None os.remove(f) self.remove_recent(filename=f) self.root.title(s['Titel']) self.zeigDateiliste() def datei_hinzu(self): # 'multiple' funktioniert nur ab Python 2.3 if self.korpus != None: self.statusAktualisieren() dateinamen = tkFileDialog.askopenfilename(initialdir=cfg['FileDir'], filetypes= (('All', '*.*'),('Text', '*.txt'),('HTML', '*.htm*'),('MS Word', '*.doc'),('MS Word 2007', '*.docx'),('OpenOffice 1.x', '*.sxw'),('OpenOffice 2.x', '*.odt')), multiple=1) if dateinamen: try: self.korpus.addDbFiles(dateinamen, codepage=self.dateiart.get()) # Default-Dir neu setzen cfg['FileDir'] = os.path.dirname(dateinamen[0]) self.zeigDateiliste() except StandardError, details: meldung = s['ErrFileOpen'] + '\n\n' + str(details) self.warnung(titel=s['Error'], text=meldung) else: self.warnung(s['Error'], s['ErrNoKorp']) def htmlFile_hinzu(self): if self.korpus != None: try: anzahl = int(self.webAnzahl.get()) except: anzahl = 50 self.busyCursorOn() self.status.set(s['StatusWeb'] % anzahl) try: self.korpus.addHTMLFiles(url=self.webUrl.get(), anzahl=anzahl, basis=self.webBasis.get(), codepage=self.dateiart.get()) self.zeigDateiliste() except StandardError, details: self.status.set(s['Error']) f_meldung = s['ErrWeb'] + '\n\n' + str(details) self.warnung(s['Error'], f_meldung) self.status.set(' ') self.busyCursorOff() else: self.warnung(s['Error'], s['ErrNoKorp']) def newsgroup_hinzu(self): if self.korpus != None: try: anzahl = int(self.newsAnzahl.get()) except: anzahl = 50 self.busyCursorOn() self.status.set(s['StatusNews'] % anzahl) try: self.korpus.addNewsFiles(server=self.newsServer.get(), gruppe=self.newsGruppe.get(), anzahl=anzahl, zitate=self.newsZitate.get(), codepage=self.dateiart.get()) self.zeigDateiliste() except StandardError, details: self.status.set(s['Error']) f_meldung = s['ErrNews'] + '\n\n' + str(details) self.warnung(s['Error'], f_meldung) self.status.set(' ') self.busyCursorOff() else: self.warnung(s['Error'], s['ErrNoKorp']) def datei_oeffnen(self, event=''): if self.datliste.curselection() != (): i = self.datliste.curselection() for x in i: dateipfad = self.datliste.get(x) try: # os.startfile kann offenbar nicht mir Unicode-Filenamen umgehen... # webbrowser verwendet aus os.startfile... Tse... dateipfad = dateipfad.encode(sys.getfilesystemencoding()) # os.startfile(dateipfad) webbrowser.open(dateipfad) except StandardError, details: meldung = s['ErrFileOpen'] + '\n\n' + str(details) self.warnung(titel=s['Error'], text=meldung) else: self.warnung(titel=s['Error'], text=s['ErrSelect']) def datei_entfernen(self, event=''): if self.datliste.curselection() != (): i = self.datliste.curselection() d = [] for x in i: dateipfad = self.datliste.get(x) d.append(dateipfad) self.korpus.delDbFiles(d) self.zeigDateiliste() else: self.warnung(titel=s['Error'], text=s['ErrSelect']) def datei_info(self, event=''): if self.datliste.curselection() != (): i = self.datliste.curselection() for x in i: dateipfad = self.datliste.get(x) f = self.korpus.getDbFile(dateipfad) info = s['DateiInfo2'] % (os.path.basename(dateipfad), f['path'], len(f)) self.info(titel=s['DateiInfo'], text=info) self.zeigDateiliste() else: self.warnung(titel=s['Error'], text=s['ErrSelect']) def zeigDateiliste(self): # erst aufr鋟men self.datliste.delete(0, END) self.freqliste.delete(0, END) self.konkliste.delete(0, END) gesamtgroesse = 0 if self.korpus != None: liste = self.korpus.getDbFileNames() for x in liste: self.datliste.insert(END, x) self.status.indicator(s['StatusFiles'] % (self.korpus.countDbFiles(), self.korpus.getDbSize())) else: self.status.indicator(s['StatusNoKorp']) self.tabPages.ChangePage(s['KorpusTab']) self.infotxt.set(s['InfoText']) def zeigWortfrequenz(self, event=''): if self.korpus != None: self.busyCursorOn() self.freqliste.delete(0, END) freq = self.korpus.getWordFreq( sort=self.sortModusFreq.get(), grossklein=self.grosskleinFreq.get(), minFreq=self.minFreq.get(), maxFreq=self.maxFreq.get(), suchFreq=self.suchFreq.get() ) self.suchFreq.set('') retro = 0 if self.sortModusFreq.get() == 'retro': retro = 1 # Tab wechseln (und dann gleich wieder zur點k) - offenbar n鰐ig # f黵 korrekte Anzeige auf MACs (Dank an Stian Haklev) self.tabPages.ChangePage(s['KorpusTab']) for x in freq: if retro==1: self.freqliste.insert(END, (x[0].rjust(45), str(x[1]).rjust(9))) else: self.freqliste.insert(END, (' '+x[0], str(x[1]).rjust(9))) self.tabPages.ChangePage(s['FormenTab']) # Wenn Gro遱chreibung hier ignoriert wird, dann sollte sie auch # bei den Konkordanzen ignoriert werden... if self.grosskleinFreq.get() == 1: self.konkGrosskleinCheckbutton.select() else: self.konkGrosskleinCheckbutton.deselect() self.statusAktualisieren() self.busyCursorOff() else: self.warnung(s['Error'], s['ErrNoKorp']) def zeigFormInfo(self, event=''): such = self.freqliste.get(self.freqliste.curselection()) form = such[0].strip() freq = int(such[1].strip()) freqfloat = float(freq) prozent = freqfloat / self.korpus.anzahlTokens * 100 txt = unicode(s['FTformInfo'], 'utf_8') % (self.korpus.anzahlTokens, len(self.korpus.wordFreq), len(self.korpus.wordFreqKlein), form, freq, prozent) self.info(form, txt ) def zeigKonkordanz(self, event=''): self.busyCursorOn() if self.tabPages.GetActivePage() == s['FormenTab']: self.konkGanzewoerter.set(1) such = self.freqliste.get(self.freqliste.curselection()) such = such[0].strip() else: such = self.suchwort.get() try:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -