最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python把csv文件轉(zhuǎn)換為excel文件

 更新時間:2024年04月01日 10:37:43   作者:數(shù)據(jù)人阿多  
本文主要介紹了Python把csv文件轉(zhuǎn)換為excel文件,可以使用xlrd,xlrwt,openpyxl,xlwings,pandas 等庫操作 Excel,具有一定的參考價值,感興趣的可以了解一下

背景

由于其他部門給的數(shù)據(jù)是 csv 文件,業(yè)務(wù)人員一般都是熟悉 excel 文件,為了方便查看數(shù)據(jù),因此需要寫個程序,把 csv 文件轉(zhuǎn)換為 excel 文件,由于是經(jīng)常使用,小編的腳本程序,寫成了在命令行中使用的方式

業(yè)務(wù)人員直接打開 csv 文件會亂碼,因excel 默認(rèn)的編碼是 GB2312,其他部門給的基本都是 utf-8 編碼,所以會亂碼

完整腳本

為了方便在命令行中使用,該腳本使用了 argparse 庫,如果對該庫不是很懂,可以查看相關(guān)資料,進行學(xué)習(xí)

"""
===========================
@Time : 2023/2/1 11:19
@File : csv_to_excel.py
@Software: PyCharm
@Platform: Win10
@Author : DataShare
===========================
"""
import pandas as pd
import argparse

if __name__ == '__main__':
    parser = argparse.ArgumentParser(description='csv_to_excel')
    parser.add_argument('--input_file', '-in', type=str, required=True, help='csv文件')
    parser.add_argument('--output_file', '-out', type=str, required=False, default=None, help='excel文件')
    args = parser.parse_args()

    data = pd.read_csv(args.input_file, sep=',', dtype='str', quotechar='"', header=0)

    print('csv文件行數(shù)為:', len(data))  # 判斷數(shù)據(jù)行數(shù)是否一致,防止不可見字符,例如:回車 等

    if args.output_file is not None:
        if args.output_file.endswith('.xlsx'):
            output_file_converted = args.output_file
        else:
            output_file_converted = args.output_file + '.xlsx'
    else:
        output_file_converted = args.input_file.split('.csv')[0] + '.xlsx'

    # 這是由于Excel單個工作表限制URL類型數(shù)據(jù)量為65530,超出的部分會被舍棄
    # 只要將strings_to_urls自動轉(zhuǎn)換功能關(guān)閉就好了
    writer = pd.ExcelWriter(output_file_converted, engine='xlsxwriter',
                            engine_kwargs={'options': {'strings_to_urls': False}})
    data.to_excel(writer, index=False)
    writer.close()

    print('數(shù)據(jù)轉(zhuǎn)換完成')

使用教程

前提條件:

  • 需要把以上的完整腳本,復(fù)制下來保存為 csv_to_excel.py 文件
  • 本機安裝了python,并且在命令行中可以直接使用

使用教程:

最好把 csv_to_excel.py 文件與將要轉(zhuǎn)換的 csv 文件放到一個文件夾中

用法1:
只指定需要轉(zhuǎn)換的 csv 文件,轉(zhuǎn)換后的結(jié)果 excel 文件,默認(rèn)與 csv 文件同名,且保存在同一個文件夾里面

python csv_to_excel.py -in test.csv

#python csv_to_excel.py --input_file test.csv

用法2:
指定需要轉(zhuǎn)換的 csv 文件,同時指定輸出的 excel 結(jié)果文件名

python csv_to_excel.py -in test.csv -out test_convert.xlsx

#python csv_to_excel.py --input_file test.csv --output_file test_convert.xlsx

使用教程

xlwt 操作

使用xlwt 操作 excel, 保存 .xls 后綴的文件

import xlwt


def csv_xls(filename, xlsname):
    f = open(filename, 'r', encoding='utf-8')
    xls = xlwt.Workbook()
    sheet = xls.add_sheet('sheet1', cell_overwrite_ok=True)
    x = 0
    for line in f:

        for i in range(len(line.split(','))):
            print(i)
            item = line.split(',')[i]
            sheet.write(x, i, item)
        x += 1
    f.close()
    xls.save(xlsname)


if __name__ == "__main__":
    filename = "test1.csv"
    xlsname ="res1.xls"
    csv_xls(filename,xlsname)

xlwt 庫僅支持.xls 后綴,不支持.xlsx 后綴的excel 文件

openpyxl 操作

使用openpyxl 庫將 csv 轉(zhuǎn)成 .xlsx格式。

from openpyxl import Workbook
import datetime


def csv_to_xlsx_pd(sourcePath:str,savePath:str,encode='utf-8'):
    """將csv 轉(zhuǎn)為 excel(.xlsx格式)
    如果不需要可以把計時相關(guān)代碼刪除
    Args:
        sourcePath:str 來源文件路徑
        savePath:str 保存文件路徑,需要包含保存的文件名,文件名需要是 xlsx 格式的
        encode='utf-8' 默認(rèn)編碼,可以改為需要的編碼如gbk
    """
    print('開始處理%s' % sourcePath)
    curr_time = datetime.datetime.now()
    print(curr_time)

    f = open(sourcePath, 'r', encoding=encode)
    # 創(chuàng)建一個workbook 設(shè)置編碼
    workbook = Workbook()
    # 創(chuàng)建一個worksheet
    worksheet = workbook.active
    workbook.title = 'sheet'

    for line in f:
        row = line.split(',')
        worksheet.append(row)
        # if row[0].endswith('00'):    # 每一百行打印一次
        #     print(line, end="")

    workbook.save(savePath)
    print('處理完畢')
    curr_time2 = datetime.datetime.now()
    print(curr_time2-curr_time)


if __name__ == '__main__':
    source = 'source.csv'
    save = 'result.xlsx'
    csv_to_xlsx_pd(sourcePath=source, savePath=save, encode='utf-8')

數(shù)據(jù)量小于1w操作會比較快,數(shù)據(jù)量大于50w, workbook.save() 保持?jǐn)?shù)據(jù)會很慢,有時候需要20-30分鐘才能保存完成。

使用 pandas 轉(zhuǎn)d

使用 pandas 將csv 轉(zhuǎn)xlsx

import pandas as pd


def csv_to_xlsx_pd():
    csv = pd.read_csv('source.csv', encoding='utf-8')
    csv.to_excel('result.xlsx', sheet_name='data')

#學(xué)習(xí)中遇到問題沒人解答?小編創(chuàng)建了一個Python學(xué)習(xí)交流群:711312441
if __name__ == '__main__':
    csv_to_xlsx_pd()

數(shù)據(jù)量小于1w操作會比較快,數(shù)據(jù)量大于50w,保存會很慢。

到此這篇關(guān)于Python把csv文件轉(zhuǎn)換為excel文件的文章就介紹到這了,更多相關(guān)Python csv轉(zhuǎn)換為excel內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • Keras神經(jīng)網(wǎng)絡(luò)efficientnet模型搭建yolov3目標(biāo)檢測平臺

    Keras神經(jīng)網(wǎng)絡(luò)efficientnet模型搭建yolov3目標(biāo)檢測平臺

    這篇文章主要為大家介紹了Keras利用efficientnet系列模型搭建yolov3目標(biāo)檢測平臺的過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • 使用Matplotlib繪制平行坐標(biāo)系的示例詳解

    使用Matplotlib繪制平行坐標(biāo)系的示例詳解

    平行坐標(biāo)系,是一種含有多個垂直平行坐標(biāo)軸的統(tǒng)計圖表,這篇文章主要為大家介紹了如何使用繪制平行坐標(biāo)系,需要的小伙伴可以參考一下
    2023-07-07
  • Python?islower()函數(shù)的使用詳解

    Python?islower()函數(shù)的使用詳解

    這篇文章主要介紹了Python?islower()函數(shù)使用方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • pytorch--之halfTensor的使用詳解

    pytorch--之halfTensor的使用詳解

    這篇文章主要介紹了pytorch--之halfTensor的使用詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • python生成器,可迭代對象,迭代器區(qū)別和聯(lián)系

    python生成器,可迭代對象,迭代器區(qū)別和聯(lián)系

    這篇文章主要介紹了python生成器,可迭代對象,迭代器區(qū)別和聯(lián)系,通過對比用法讓大家更加深入理解相關(guān)知識,需要的朋友參考學(xué)習(xí)下吧。
    2018-02-02
  • Python趣味編程實現(xiàn)手繪風(fēng)視頻示例

    Python趣味編程實現(xiàn)手繪風(fēng)視頻示例

    本文與計算機視覺相關(guān),使用Python將圖片由自然風(fēng)轉(zhuǎn)化為手繪風(fēng),期間未對圖片進行任何預(yù)處理、后處理;代碼中只借助了兩個常見庫,核心計算由Numpy負(fù)責(zé) ,Pillow 負(fù)責(zé)圖片讀寫
    2021-10-10
  • python中的信號通信 blinker的使用小結(jié)

    python中的信號通信 blinker的使用小結(jié)

    信號是一種通知或者說通信的方式,信號分為發(fā)送方和接收方,信號的特點就是發(fā)送端通知訂閱者發(fā)生了什么,今天通過本文給大家介紹python中的信號通信 blinker的相關(guān)知識,感興趣的朋友一起看看吧
    2021-10-10
  • 基于PyQt制作小紅書圖片抓取工具

    基于PyQt制作小紅書圖片抓取工具

    這篇文章主要為大家詳細(xì)介紹了如何基于PyQt制作一個小紅書圖片抓取工具,文中的示例代碼講解詳細(xì),具有一定的借鑒價值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-11-11
  • pycharm進入科學(xué)模式以及退出方式

    pycharm進入科學(xué)模式以及退出方式

    這篇文章主要介紹了pycharm進入科學(xué)模式以及退出方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • CentOS 7.9 安裝 Python 3.10 詳細(xì)步驟及常見錯誤解決方案

    CentOS 7.9 安裝 Python 3.10 詳細(xì)步驟及常見錯誤

    CentOS7.9安裝Python3.10需升級OpenSSL至1.1.1,配置編譯參數(shù)并使用altinstall避免覆蓋Python2.7,設(shè)置環(huán)境變量修復(fù)yum沖突,處理依賴缺失及模塊編譯錯誤,優(yōu)化pip源以提升兼容性,本文給大家介紹CentOS 7.9 安裝 Python 3.10 詳細(xì)步驟及常見錯誤,感興趣的朋友一起看看吧
    2025-06-06

最新評論

武安市| 光泽县| 英山县| 德安县| 化州市| 彭州市| 九龙坡区| 密山市| 绿春县| 鹤庆县| 共和县| 黄大仙区| 岱山县| 鸡东县| 荃湾区| 台前县| 岳阳市| 扬中市| 定兴县| 同仁县| 义乌市| 正蓝旗| 西和县| 灵山县| 灵璧县| 东乌| 延安市| 长顺县| 资溪县| 江华| 铁力市| 梅州市| 沁水县| 来宾市| 五大连池市| 克东县| 马尔康县| 桓台县| 巧家县| 新和县| 利津县|