2011-09-14 36 views
1

我期待改變由mysqldump命令通過以下方式產生的輸出格式化:更改對mysqldump的輸出列分隔符的數據

(data_val1,data_val2,data_val3,...) 

(data_val1|data_val2|data_val3|...) 

這裏的變化是一個不同的分隔符。這將允許我(在python中)使用line.split(「|」)命令解析數據行,並最終得到正確分割的值(而不是使用line.split(「,」),包含逗號分成多個值)。

我試過使用--fields-terminated-by標誌,但是這需要使用--tab標誌。我不想使用--tab標誌,因爲它將轉儲分割成多個文件。有誰知道如何改變mysqldump使用的分隔符?

回答

0

這不是一個好主意。 Python中不使用string.split(),而是使用the csv module來正確解析CSV數據,該數據可能用引號引起來,並且可能有內部的,而不是分隔符。

import csv 

MySQL轉儲文件旨在用作輸入回MySQL。如果您確實想要使用管道分隔的輸出,請使用SELECT INTO OUTFILE syntax而不是FIELDS TERMINATED BY '|'選項。

+0

不幸的是,這不會爲我做。 MySQL數據庫在服務器上,而不是我需要從中運行腳本的服務器。因爲這樣SELECT INTO OUTFILE將不起作用。另外,正如我的問題所述,我正在修改由mysqldump生成的輸出以更改分隔符,以便列值以不同方式分隔,但包含不是分隔符的逗號的值不會被修改。 – paradox870

+0

@ paradox870我明白了 - 這就是Python csv模塊進來的地方。它將能夠解析逗號分隔的mysqldump輸出,而不需要修改分隔符。 –

+0

同樣,這需要訪問與mysql相同的服務器上的文件數據庫 - 我沒有。 – paradox870