首頁 > 後端開發 > Python教學 > python-根據電子表格的資料自動查找文件

python-根據電子表格的資料自動查找文件

巴扎黑
發布: 2017-06-23 16:01:04
原創
2406 人瀏覽過

最近剛接觸python,找點小任務來練練手,希望自己在練習中不斷的鍛鍊自己解決問題的能力。

經理最近又佈置了一個很繁瑣的任務給我:有一項很重大的專案做完了,但是要過審計(反正就是類似的審批之類的事情),要提交整個專案的過程性文件。這個專案做了整整有一年,其中的開了無數次會議,定了無數次方案,所以也形成了大大小小的很多個文件(圖紙,電子表格,word文檔,圖像)。現在的任務就是要從一個很大資料夾中找出審計要的指定的300個文件。

這件事有手乾也很簡單,就是複製電子表格中的檔案名,然後到搜尋欄中去搜尋它,找到它。十來個文件找還好,300多個手動乾就太反鎖了,不是嗎?

解決想法:

  1. 透過python去讀取電子表格中的300個檔案名稱並清除空格

  2. 將每個檔案名稱作為參數傳給windows的批次檔(.bat),讓它去尋找檔案是否存在,並將結果傳回

  3. ##python 接到結果列印出來

  4. 透過結果,再次手動確認程式辨識出來的是否真的找不到,是否只是名字稍有差別。

python腳本:

 1 import openpyxl 2 import os 3 #获得excel文件 4 wb = openpyxl.load_workbook('d:/201704.xlsx') 5 #获取列值 6 def get_delivery(wb): 7     #获取表单名称 8     sheet_names = wb.get_sheet_names() 9     #获取表10     sheet=wb.get_sheet_by_name(sheet_names[0])11     #获取列值,除了第一行的标题12     deliveries = [cellobj.value for cellobj in sheet['C'] if cellobj.value != None]13     return deliveries14 15 my_deliverys = get_delivery(wb)16 nofound = []17 # print(my_delivery)18 for delivery in my_deliverys:19     if os.system('search.bat %s' % delivery) == 1:20         nofound.append(delivery)21 22 for x in nofound:23     if x != '交付物列表:':24         print("没有找到的文件:%s" %x)25 print("程序结束")
登入後複製
#search.bat 程式碼:

 1 @echo off 2  3 set "FileName=%1" 4 set "FilePath=D:\" 5 echo 正在搜索文件... 6  7 for /f "delims=" %%b in ('dir /a-d /s /b "%FilePath%\*%FileName%" 2^>nul') do ( 8   if /i "%%~nxb" equ "%FileName%" ( 9     echo,%%b10   )11 )
登入後複製
##啊~~一下子心情就好了,又可以從繁雜的工作逃出來曬太陽喝喝茶了。 。 。

以上是python-根據電子表格的資料自動查找文件的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板