这是我正在使用的脚本的摘录。它基本上是从Oracle数据库中提取数据,然后将其写入.csv文件。
除了csv写入:最后的csv不适合经典的csv格式:它是换行的,我修复了它。
但现在我无法获得简单的引号字符,即使我应该使用正确的csv.register方言代码。
以下是代码和示例:
FILE=open(files,'wb')
csv.register_dialect('test_dialect', delimiter=';', escapechar= '\', quotechar = ''', doublequote=False)
output=csv.writer(FILE, 'test_dialect')
以下是我在test.csv中得到的内容:
INSEE_COMM
01012
01014
01031
以下是我想在test.csv中获得的内容:
INSEE_COMM
'01012'
'01014'
'01031'
我编辑了代码,去掉了带有"wb"参数的多余行。但我没有得到INSEE_COM值周围的引号字符
你能给我一个提示、一些关键词或一些帮助吗?
所以你想在每行上多加一个分号?只需将您的CSV方言更改为。。。
csv.register_dialect('dial_test',
delimiter=';',
lineterminator=';n',
quoting=csv.QUOTE_NONE,
escapechar='\',
doublequote=False)
好的,我经历了这些简单的问题,最终找到了解决方案:
第一个问题是csv中的多余行。我在那里解决了这个问题:
FILE=open(filename,'wb')
"wb"表示"写入二进制文件":它解决了.exe、图像文件(如行尾)中单独使用"w"参数无法解决的问题。
我要求csv中的每一行都用最后一个分号:这没用。经典的以分号分隔的csv在行尾没有分号。
对于简单的引号,您只需要在方言定义中添加引号=csv.QUOTE_ALL:
csv.register_dialect('dial_quote', delimiter=';', escapechar= '\', quotechar = ''',quoting=csv.QUOTE_ALL, doublequote=False)
QUOTE_NONE在相反方面也同样有效。
你来了!!!