| 787 | |
| 788 | # 保存文件 |
| 789 | def save (self, filename = None, codec = 'utf-8'): |
| 790 | if filename is None: |
| 791 | filename = self.__csvname |
| 792 | if filename is None: |
| 793 | return False |
| 794 | if sys.version_info[0] < 3: |
| 795 | fp = open(filename, 'wb') |
| 796 | writer = csv.writer(fp) |
| 797 | else: |
| 798 | fp = open(filename, 'w', encoding = codec) |
| 799 | writer = csv.writer(fp) |
| 800 | writer.writerow(self.__heads) |
| 801 | for row in self.__rows: |
| 802 | newrow = [] |
| 803 | for n in row: |
| 804 | if isinstance(n, int) or isinstance(n, long): |
| 805 | n = str(n) |
| 806 | elif not isinstance(n, bytes): |
| 807 | if (n is not None) and sys.version_info[0] < 3: |
| 808 | n = n.encode(codec, 'ignore') |
| 809 | newrow.append(n) |
| 810 | writer.writerow(newrow[:COLUMN_SIZE]) |
| 811 | fp.close() |
| 812 | return True |
| 813 | |
| 814 | # 对象解码 |
| 815 | def __obj_decode (self, row): |