簡體   English   中英

如何將cx_Oracle csv輸出中的默認換行符固定為分號分隔符格式?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM