|
37 | 37 | import os
|
38 | 38 | import csv
|
39 | 39 | import uuid
|
40 |
| -import codecs |
41 |
| -import io |
42 | 40 |
|
43 | 41 | import psycopg2
|
44 | 42 | from osgeo import ogr
|
@@ -768,42 +766,17 @@ def __init__(self, fileName, encoding, fields):
|
768 | 766 | if self.encoding is None or encoding == 'System':
|
769 | 767 | self.encoding = 'utf-8'
|
770 | 768 |
|
771 |
| - with open(self.fileName, 'wb') as csvFile: |
772 |
| - self.writer = UnicodeWriter(csvFile, encoding=self.encoding) |
| 769 | + with open(self.fileName, 'w', newline='', encoding=self.encoding) as f: |
| 770 | + self.writer = csv.writer(f) |
773 | 771 | if len(fields) != 0:
|
774 | 772 | self.writer.writerow(fields)
|
775 | 773 |
|
776 | 774 | def addRecord(self, values):
|
777 |
| - with open(self.fileName, 'ab') as csvFile: |
778 |
| - self.writer = UnicodeWriter(csvFile, encoding=self.encoding) |
| 775 | + with open(self.fileName, 'a', newline='', encoding=self.encoding) as f: |
| 776 | + self.writer = csv.writer(f) |
779 | 777 | self.writer.writerow(values)
|
780 | 778 |
|
781 | 779 | def addRecords(self, records):
|
782 |
| - with open(self.fileName, 'ab') as csvFile: |
783 |
| - self.writer = UnicodeWriter(csvFile, encoding=self.encoding) |
| 780 | + with open(self.fileName, 'a', newline='', encoding=self.encoding) as f: |
| 781 | + self.writer = cvs.writer(f) |
784 | 782 | self.writer.writerows(records)
|
785 |
| - |
786 |
| - |
787 |
| -class UnicodeWriter(object): |
788 |
| - |
789 |
| - def __init__(self, f, dialect=csv.excel, encoding='utf-8', **kwds): |
790 |
| - self.queue = io.StringIO() |
791 |
| - self.writer = csv.writer(self.queue, dialect=dialect, **kwds) |
792 |
| - self.stream = f |
793 |
| - self.encoder = codecs.getincrementalencoder(encoding)() |
794 |
| - |
795 |
| - def writerow(self, row): |
796 |
| - row = list(map(str, row)) |
797 |
| - try: |
798 |
| - self.writer.writerow([s.encode('utf-8') for s in row]) |
799 |
| - except: |
800 |
| - self.writer.writerow(row) |
801 |
| - data = self.queue.getvalue() |
802 |
| - data = data.decode('utf-8') |
803 |
| - data = self.encoder.encode(data) |
804 |
| - self.stream.write(data) |
805 |
| - self.queue.truncate(0) |
806 |
| - |
807 |
| - def writerows(self, rows): |
808 |
| - for row in rows: |
809 |
| - self.writerow(row) |
0 commit comments