日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python excelwriter保存路径_python管理文件神器 os.walk

發布時間:2025/3/21 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python excelwriter保存路径_python管理文件神器 os.walk 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

點擊上方“機器學習與生成對抗網絡”,關注"星標"

獲取有趣、好玩的前沿干貨!

來源:詭途?

https://blog.csdn.net/qq_35866846/article/details/107823636

文僅分享,侵刪

【導語】:有沒有想過用python寫一個文件管理程序?聽起來似乎沒思路?其實是可以的,因為python已經為你準備好了神器os.walk,進來看看吧!

python中os.walk是一個簡單易用的文件、目錄遍歷器,可以幫助我們高效的處理文件、目錄方面的事情。

本文將詳細介紹os.walk模塊,最后使用os.walk模塊實現一個在指定日志整理文件的程序。

基本介紹

os.walk():掃描某個指定目錄下所包含的子目錄和文件,返回的是一個迭代器。

基本使用

假設文件夾data有如下的目錄結構(cmd 命令:tree /f)

2.1掃描所有文件

掃描內容:

  • 子文件夾和文件

  • 子文件夾下的文件

輸出內容:

  • 文件夾名稱/文件名稱

掃描路徑:

  • 自頂向下 topdown=True(默認)

  • 自底向上 topdown=False

from os import walkpath="data"for curDir, dirs, files in walk(path):#for curDir, dirs, files in walk(path,topdown=False): print("現在的目錄:" ,curDir) print("該目錄下包含的子目錄:" , str(dirs)) print("該目錄下包含的文件:",str(files))????print("*"*20)

自頂向下掃描結果:

現在的目錄:data該目錄下包含的子目錄:['testA', 'testB', 'testC']該目錄下包含的文件:['2020-07-12 - 第一層.xlsx', '2020-07-13 - 第一層.xlsx', '2020-07-14 - 第一層.xlsx']********************現在的目錄:data\testA該目錄下包含的子目錄:[]該目錄下包含的文件:['2020-07-12-A.xlsx', '2020-07-13-A.xlsx', '2020-07-14-A.xlsx']********************現在的目錄:data\testB該目錄下包含的子目錄:[]該目錄下包含的文件:['2020-07-12-B.xlsx', '2020-07-13-B.xlsx', '2020-07-14-B.xlsx']********************現在的目錄:data\testC該目錄下包含的子目錄:[]該目錄下包含的文件:['2020-07-12-C.xlsx', '2020-07-13-C.xlsx', '2020-07-14-C.xlsx']********************

自底向上掃描結果:

現在的目錄:data\testA該目錄下包含的子目錄:[]該目錄下包含的文件:['2020-07-12-A.xlsx', '2020-07-13-A.xlsx', '2020-07-14-A.xlsx']********************現在的目錄:data\testB該目錄下包含的子目錄:[]該目錄下包含的文件:['2020-07-12-B.xlsx', '2020-07-13-B.xlsx', '2020-07-14-B.xlsx']********************現在的目錄:data\testC該目錄下包含的子目錄:[]該目錄下包含的文件:['2020-07-12-C.xlsx', '2020-07-13-C.xlsx', '2020-07-14-C.xlsx']********************現在的目錄:data該目錄下包含的子目錄:['testA', 'testB', 'testC']該目錄下包含的文件:['2020-07-12 - 第一層.xlsx', '2020-07-13 - 第一層.xlsx', '2020-07-14 - 第一層.xlsx']********************

2.2掃描輸出所有文件的路徑

輸出所有文件:

import ospath="data"for curDir, dirs, files in os.walk(path): for file in files:????????print(os.path.join(curDir,?file))data\2020-07-12 - 第一層.xlsxdata\2020-07-13 - 第一層.xlsxdata\2020-07-14 - 第一層.xlsxdata\testA\2020-07-12-A.xlsxdata\testA\2020-07-13-A.xlsxdata\testA\2020-07-14-A.xlsxdata\testB\2020-07-12-B.xlsxdata\testB\2020-07-13-B.xlsxdata\testB\2020-07-14-B.xlsxdata\testC\2020-07-12-C.xlsxdata\testC\2020-07-13-C.xlsxdata\testC\2020-07-14-C.xlsx

輸出指定類型文件

#endswith 截取文件后綴import ospath="data"for curDir, dirs, files in os.walk(path):????[print(os.path.join(curDir,?file))?for?file?in?files??if?file.endswith(".xlsx")]

2.3掃描輸出所有的子目錄(子文件夾)

# 使用os.walk輸出某個目錄下的所有文件import ospath="data"for curDir, dirs, files in os.walk(path): for _dir in dirs:????????print(os.path.join(curDir,?_dir))data\testAdata\testBdata\testC

案例代碼

#綜合運用os.walk()——文件指定日期整理程序

import pandas as pdimport numpy as npimport os,openpyxl#移動符合條件文件,并刪除二級文件夾和多余文件def move_file(file_path,_new_path,date_xl_str): #本月文件移動至對應新建文件夾,非本月文件直接刪除 for curDir, dirs, files in os.walk(file_path): for file in files: old_path = os.path.join(curDir, file) new_path = os.path.join(_new_path, file) file_date=file.split("_")[-1][:10] try: os.rename(old_path,new_path) if file_date in date_xl_str else os.remove(old_path) except: os.remove(old_path) #移除子文件夾 for curDir, dirs, files in os.walk(file_path): for _dir in dirs: os.removedirs(os.path.join(curDir, _dir)) os.mkdir("data")#文件去重-相同日期文件def qch_date(file_path): wj_names=os.listdir(file_path) wj_list=[] num=0 for wj in wj_names: new_wj=wj[:-11] if new_wj not in wj_list: wj_list.append(new_wj) else: os.remove(file_path+"\\"+wj) num+=1 return num#更新數據源def refresh_data(file_path,sheet_name,data): book=openpyxl.load_workbook(file_path) writer=pd.ExcelWriter(file_path,engine="openpyxl") #在ExcelWriter的源代碼中,它初始化空工作簿并刪除所有工作表, #writer.book = book將原來表里面的內容保存到writer中 writer.book=book #activate激活指定sheet工作表 ws=book[sheet_name] #清空當前活動表數據 for row in ws.iter_rows(): for cell in row: cell.value=None #dataframe行列數 idx_num,col_num=data.shape #新數據寫入當前活動表-注意索引偏移 for i in range(1,idx_num+1): for j in range(1,col_num+1): ws.cell(row=i,column=j).value=data.iloc[i-1,j-1] #保存關閉writer writer.save() writer.close() return None#文件檢查def check_file(file_path,check_file="文件檢查.xlsx"): wj_names=os.listdir(file_path) data=pd.DataFrame([wj.split("_")[2:] for wj in wj_names],columns=["店鋪名稱","日期"]) data['日期']=data['日期'].str[:10] ????#標題columns放到dataframe中 nind=data.index.insert(0,'0') data1=data.reindex(index=nind) data1.loc['0']=data.columns data1.reset_index(drop=True,inplace=True) #刷新數據源 refresh_data(check_file,"數據源",data1) return Nonefile_path="data"#日期格式:xxxx-xx eg:2020-07-01start_date=input("請輸入開始日期:")end_date=input("請輸入開始日期:")#生成日期區間-字符串類型date_xl_str=[str(i)[:10] for i in pd.date_range(start_date,end_date,freq='D')]#創建指定文件夾new_path=start_date+"~"+end_datetry: os.mkdir(new_path)except: print("文件夾 【%s】 已存在"%new_path) #移動符合條件文件,并刪除二級文件夾和多余文件move_file(file_path,new_path,date_xl_str) #文件去重num=qch_date(new_path)print("去除重復文件 %s 個"%num)#文件檢查check_file(new_path)

- EOF -

猜您喜歡:

附下載 | 《Python進階》中文版

附下載 | 經典《Think Python》中文版

附下載 | 《Pytorch模型訓練實用教程》

附下載 | 最新2020李沐《動手學深度學習》

附下載 |?《可解釋的機器學習》中文版

附下載 |《TensorFlow 2.0 深度學習算法實戰》

附下載 | 超100篇!CVPR 2020最全GAN論文梳理匯總!

附下載 |《計算機視覺中的數學方法》分享

總結

以上是生活随笔為你收集整理的python excelwriter保存路径_python管理文件神器 os.walk的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。