查看dbf代码,我看不到任何传递方言的方法,因此您可以按如下方式转换文件:
import csv
reader = csv.reader(open('input.csv'), delimiter=';')
writer = csv.writer(open('output.csv', 'w'))
for row in reader:
writer.writerow(row)注意:这将正确引用已包含逗号作为其内容一部分的行。
编辑:如果您愿意修补dbf.from_csv以接受delimiter作为参数以避免转换所有csv文件,这应该有效:
--- dbf.py.orig 2012-01-23 12:48:32.112101218 +0100
+++ dbf.py 2012-01-23 12:49:59.468534408 +0100
@@ -4502,13 +4502,14 @@
print str(table[0])
finally:
table.close()
-def from_csv(csvfile, to_disk=False, filename=None, field_names=None, extra_fields=None, dbf_type='db3', memo_size=64, min_field_size=1):
+def from_csv(csvfile, to_disk=False, filename=None, field_names=None, extra_f