[英]How to fix a default new line delimiter in a cx_Oracle csv output into a semicolon delimiter format?
这是我正在使用的脚本的摘录。 它基本上是从Oracle数据库中提取数据,然后将其写入.csv文件中。
除csv编写外,其他所有程序都运行良好:最终的csv与经典的csv格式不符:这是用新行分隔的,我已将其修复。
但是,即使我应该使用正确的csv.register_dialect代码,现在也无法获得简单的引号字符。
下面是代码和示例:
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在行尾没有分号。
对于简单的引号,您只需在方言定义中添加quoting = csv.QUOTE_ALL:
csv.register_dialect('dial_quote', delimiter=';', escapechar= '\\', quotechar = '\'',quoting=csv.QUOTE_ALL, doublequote=False)
相反,QUOTE_NONE会同样有效。
你在这!!!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.