电竞比分网-中国电竞赛事及体育赛事平台

分享

Python查找處理文件常用代碼集錦,值得收藏

 lllsztz 2019-11-26

在日常工作中,我們經(jīng)常會(huì)遇到一些查找、存儲(chǔ)文件的問題,比如合并文件夾內(nèi)的多個(gè)excel文件等。這就涉及到文件的查找處理等操作,Python提供的OS庫(kù)就派上了用場(chǎng)。本文整理了一些常用的文件處理代碼,基本滿足日常需要,適合收藏。

1、得到指定文件路徑:os.path.dirname(帶路徑文件名)

查找處理文件要調(diào)用os庫(kù),和openpyxl一樣,先用import 導(dǎo)入。

import osfile = r'e:\python\刪除最小值.xlsx'pwd = os.path.dirname(file)print(pwd)
運(yùn)行結(jié)果為:e:\python也可從分離文件名后的列表中提?。簅s.path.split(帶路徑文件名)[0]

2、得到當(dāng)前文件名:os.path.dasename(帶路徑文件名)

import osfile = r'e:\python\刪除最小值.xlsx'pwdn = os.path.basename(file)print(pwdn)
運(yùn)行結(jié)果為:刪除最小值.xlsx也可從分離文件名后的列表中提?。簅s.path.split(帶路徑文件名)[1]

3、判斷文件路徑是否存在:os.path.exists(帶路徑文件名)

import osfile = r'e:\python\刪除最小值.xlsx'pwdbool = os.path.exists(file)print(pwdbool)
運(yùn)行結(jié)果為:true若給定的路徑文件不存在,則返回false

4、獲得指定文件夾下所有文件:print(os.listdir(文件夾路徑))

import ospwdns = os.listdir(r'e:\python')print(pwdns[1])
運(yùn)行結(jié)果:8.py 為'e:\python'文件夾下第2個(gè)文件(或文件夾)名。

5、獲得文件后綴:os.path.splitext(文件名)

import ospdn= os.path.splitext('試驗(yàn).py')print(pdn[1])
運(yùn)行結(jié)果:.py,若最后一句改為print(pdn[0]),則得到文件名。

我們模擬一個(gè)案例,體驗(yàn)一下

在下面的文件夾“e:\python\匯總”里,有2個(gè)xlsx文件和一個(gè)txt文件,要求先判斷當(dāng)前文件夾內(nèi)是否存在“匯總.xlsx”文件,若不存在則新建一個(gè),若存在則直接打開使用,要求將其他.xlsx文件的第1個(gè)表單數(shù)據(jù),匯總至“匯總.xlsx”文件。

Python查找處理文件常用代碼集錦,值得收藏

初始文件

1、導(dǎo)入os庫(kù)和openpyxl庫(kù),給定當(dāng)前路徑為模塊參數(shù)

import osimport openpyxlif __name__ == '__main__': jion(r'e:\python\匯總')

2、在jion模塊內(nèi)寫代碼,先判斷是否存在匯總.excle文件,若無(wú)則創(chuàng)建

def jion(f1): f2 = f1 + '\\' + '匯總.xlsx' bl = os.path.exists(f2) if bl is False: wb = openpyxl.Workbook() ws = wb.active ws.title = '匯總' ws1 = wb.create_sheet('a1') wb.save(f2) wb = openpyxl.load_workbook(f2) ws = wb.active

3、遍歷指定文件夾,將目標(biāo).xlsx文件放入列表k備用

pns = os.listdir(f1)k = []for i in range(len(pns)): hz = os.path.splitext(pns[i])[1] qz = os.path.splitext(pns[i])[0] if hz == '.xlsx' and qz != '匯總': k.append(pns[i])

5、逐個(gè)打開目標(biāo)文件,將第一個(gè)表單內(nèi)的數(shù)據(jù)復(fù)制粘貼在匯總表內(nèi)匯總表單內(nèi)

for i in range(len(k)): wb1 = openpyxl.load_workbook(f1 + '\\' + k[i]) ws1 = wb1._sheets[0] for jj in range(2, ws1.max_row+1): ks = ws.max_row for j in range(1, ws1.max_column+1): ws.cell(ks+1, j).value = ws1.cell(jj, j).valuewb.save(f2)

6、運(yùn)行代碼完成,此時(shí)匯總文件內(nèi)已經(jīng)合并了其他兩個(gè)文件的數(shù)據(jù)。

Python查找處理文件常用代碼集錦,值得收藏

程序運(yùn)行后文件

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多