def GetFullLabelsPath(self): labels_paths = mf.get_labels_paths(self.snd_dir) num_labels = len(labels_paths) num_snds = self.flist.ItemCount if num_labels < num_snds: wx.MessageBox(u'まだポーズがついてない音声があります') return None # 音声ファイル数以上にあるラベルファイルは無視する return labels_paths[:num_snds]
def backup(self, snd_dir, prefix=''): ''' バックアップの作成 @param prefix 保存名の頭につける文字列 ''' try: zip_path, name = self._get_backup_path(snd_dir, prefix) zf = zipfile.ZipFile(zip_path, 'w', zipfile.ZIP_DEFLATED) # ---- info.txt の作成 conf = SafeConfigParser() conf.add_section('info') conf.set('info', 'name', name.encode('CP932')) sf = StringIO() conf.write(sf) LABELS_DIR = 'labels' info_path = os.path.join(LABELS_DIR, INFO_FILE) zf.writestr(info_path, sf.getvalue()) labels_paths = mf.get_labels_paths(snd_dir, False) snd_files = mf.get_snd_files(snd_dir) num_snds = len(snd_files) max_labels_file = mf.get_labels_file(num_snds) # ---- ラベルファイルの作成 for labels_path in labels_paths: labels_file = os.path.basename(labels_path) if labels_file > max_labels_file: break dst = os.path.join(LABELS_DIR, labels_file) zf.write(labels_path, dst) zf.close() except Exception as e: print str(e) return None info = self._load_labels_info_from_zip(zip_path) self.append(info) return info