2016-07-13 12 views
0

私は、.xlsxファイルを.csvに変換するためにパンダを使用しています。問題は、プログラムを実行するたびに結果のファイルがcsvファイルではなくzipファイルになります。助けるためパンダ:.xlsxファイルを.csvファイルに変換すると、zipファイルになります。

def exl2csv(x,y): 
    exlfilename = str(x) 
    exlsheetname = str(y) 
    workbook = xlrd.open_workbook(exlfilename) 
    worksheet = workbook.sheet_by_name(exlsheetname) 
    csvfileloc = os.path.join('uploads', 'frmxl2csv-' + get_random_id()) 
    dataframe = pd.DataFrame(worksheet) 
    dataframe.to_csv(csvfileloc, sep='\t', encoding='utf-8') 
    return csvfileloc 

ありがとう: これは私のコードです。

+1

ファイル名の拡張子が '.zip'の場合、Pandasは圧縮したいと推測します。 'get_random_id'が' .zip'拡張子を返さないようにするために、csvに保存する直前に 'csvfileloc'を印刷できますか? – Danyule

答えて

0

もしあなたが望むならば、パンダを使ってすべてをやることができます。

pandas.read_excel()はあなたがそうあなたができる読みたいシートを指定することができます:

def exl2csv(x,y): 
    exlfilename = str(x) 
    exlsheetname = str(y) 
    df = pandas.read_excel(exlfilename, exlsheetname) 
    csvfileloc = os.path.join('uploads', 'frmxl2csv-' + get_random_id()+'.csv') 
    df.to_csv(csvfileloc, sep='\t', encoding='utf-8') 
    return csvfileloc 

あなたはCSVファイルのファイル名の末尾に「.CSV」を渡していることを確認します。

関連する問題