예제 #1
0
    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]
예제 #2
0
파일: backup.py 프로젝트: ivan111/inspause
    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