[英]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.