溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

基于Python如何實現(xiàn)文本文件轉(zhuǎn)Excel

發(fā)布時間:2022-08-11 13:58:51 來源:億速云 閱讀:193 作者:iii 欄目:開發(fā)技術(shù)

本篇內(nèi)容主要講解“基于Python如何實現(xiàn)文本文件轉(zhuǎn)Excel”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“基于Python如何實現(xiàn)文本文件轉(zhuǎn)Excel”吧!

    一、前言

    Excel文件是我們常用的一種文件,在工作中使用非常頻繁。Excel中有許多強大工具,因此用Excel來處理文件會給我們帶來很多便捷。但是有時候我們拿到了文件不是Excel文件,而且我們又想用Excel中的工具,這個時候我們就可以想辦法把這個文件轉(zhuǎn)換成Excel文件了。

    二、openpyxl模塊

    openpyxl模塊是用來操作Excel文件的一個模塊,還有很多模塊可以做同樣的事情,這里就不介紹了。

    1、安裝

    安裝只需要執(zhí)行下面語句即可:

    pip install openpyxl

    然后在代碼中導(dǎo)入工作簿:

    from openpyxl import Workbook

    這樣我們就可以開始操作了。

    2、簡單操作

    我們來看一些簡單的操作:

    from openpyxl import Workbook
    # 創(chuàng)建工作簿
    wb = Workbook()
    # 激活
    ws = wb.active
    # 設(shè)置指定格的數(shù)據(jù)
    ws['A1'] = 41
    # 在下一行添加數(shù)據(jù)
    ws.append([1, 2, 3])
    # 保存
    wb.save("1.xlsx")

    這里前面兩步是基本操作,首先創(chuàng)建Workbook對象,然后調(diào)用active函數(shù)激活。然后我們通過下標(biāo)的方式給指定坐標(biāo)的位置添加數(shù)據(jù)。最后調(diào)用save方法保存文件。

    三、文本文件轉(zhuǎn)excel文件

    上面的幾個操作就足夠我們今天的操作了,下面我們來看看如何將文本文件轉(zhuǎn)換成Excel文件。

    1、尋找規(guī)律

    在文章開頭說了,我們只能將有規(guī)律的文本文件轉(zhuǎn)換成Excel,不然沒有太多意義。所以我們第一步就是找規(guī)律。比如我們下面這個文件:

    姓名,性別,年齡
    zack,男,21
    rudy,男,22
    alice,女,20
    atom,男, 23

    我們來看一下上面的數(shù)據(jù),其中第一行是數(shù)據(jù)的字段。而后面幾行就是真實數(shù)據(jù)了。而單個數(shù)據(jù)的屬性值又由逗號隔開。這種規(guī)律非常明顯,很適合我們今天的內(nèi)容。不管仔細(xì)觀察可以看到,逗號有中文的也有英文的,而且有的里面還包含了空格。知道這些后我們在轉(zhuǎn)換的時候就需要針對性的處理一下了。

    2、開始轉(zhuǎn)換

    首先我們要處理文本,然后再寫入Excel,具體代碼如下:

    from openpyxl import Workbook
    wb = Workbook()
    ws = wb.active
    # 處理文件
    with open("test.txt", "r", encoding="utf-8") as f:
        # 把逗號替換成統(tǒng)一的\t
        content = f.read().replace(",", "\t").replace(",", "\t")
        # 根據(jù)換行拆分內(nèi)容
        lines = content.split("\n")
        # 提取標(biāo)題
        titles = lines[0].split("\t")
        titles.insert(0, "")
        # 標(biāo)題寫入excel
        ws.append(titles)
        # 寫入內(nèi)容
        for i, line in enumerate(lines[1:]):
            item = line.split("\t")
            item.insert(0, i)
            ws.append(item)
    wb.save("1.xlsx")

    經(jīng)過上面的處理,我們就成功將文本轉(zhuǎn)換成excel了,下面是結(jié)果圖:

    基于Python如何實現(xiàn)文本文件轉(zhuǎn)Excel

    excel表格

    效果正是我們想要的,大家可以根據(jù)不同需求不同文件來修改處理的代碼。

    補充

    Python對于Excel文件的操作當(dāng)然不僅僅是可以將文本文件轉(zhuǎn)為Excel,還可以將PDF轉(zhuǎn)為Excel,下面是實現(xiàn)代碼,希望對你有所幫助

    import pdfplumber
    import pandas as pd
    
    path = 'test.pdf'
    pdf = pdfplumber.open(path)
    i=1
    #writer=pd.ExcelWriter('output.xlsx')
    df=pd.DataFrame(columns=['序號','刊名','主辦單位','等級'])
    sheetname=['考古文博','歷史學(xué)','馬克思主義理論','民族學(xué)與文化學(xué)','文學(xué)-外國文學(xué)','文學(xué)-中國文學(xué)','藝術(shù)學(xué)','語言學(xué)','哲學(xué)','宗教學(xué)','法學(xué)'
       ,'管理學(xué)','環(huán)境科學(xué)','教育學(xué)','經(jīng)濟學(xué)-財政科學(xué)','經(jīng)濟學(xué)-工業(yè)經(jīng)濟','經(jīng)濟學(xué)-金融','經(jīng)濟學(xué)-經(jīng)濟管理','經(jīng)濟學(xué)-經(jīng)濟綜合','經(jīng)濟學(xué)-貿(mào)易經(jīng)濟'
       ,'經(jīng)濟學(xué)-農(nóng)業(yè)經(jīng)濟','經(jīng)濟學(xué)-世界經(jīng)濟','人文地理學(xué)','社會學(xué)','體育學(xué)','統(tǒng)計學(xué)','圖書館情報與檔案學(xué)','心理學(xué)','新聞學(xué)與傳播學(xué)'
       ,'政治學(xué)-國際政治','政治學(xué)-中國政治','綜合-高校綜合性學(xué)報','綜合-綜合性人文社科期刊']
       
    ##由于存在一個表格跨頁的情況,先將所有表格存放在一個DataFrame中,再根據(jù)序號拆分。
    
    for page in pdf.pages[17:59]:
     print (page)
     # 獲取當(dāng)前頁面的全部文本信息,包括表格中的文字
     # print(page.extract_text())
     for table in page.extract_tables():
      #print(table)
      df=df.append(pd.DataFrame(table[1:],columns=table[0]),ignore_index=True)
    print (df)
    
    writer=pd.ExcelWriter('output3.xlsx')
    new_df=pd.DataFrame()
    j=1
    index=[]
    #記錄序號==1的行索引,用于后面的表格拆分
    for i in range(len(df)):
     if df.ix[i,0]=='1':
      index.append(i)
      print ("################")
    index.append(len(df))
    #print (index)
    
    #按行索引將內(nèi)容切片并逐個添加到表中
    for t in range(len(index)-1):
     new_df=df.ix[index[t]:index[t+1]-1,:]
     #print (new_df)
     new_df.to_excel(writer,sheet_name=sheetname[t],encoding='gb2312',index=None)
    writer.save()
    pdf.close()
    print('finished')

    到此,相信大家對“基于Python如何實現(xiàn)文本文件轉(zhuǎn)Excel”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

    向AI問一下細(xì)節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI