python - automatically find files based on spreadsheet data

巴扎黑
Release: 2017-06-23 16:01:04
Original
2398 people have browsed it

I have just come into contact with python recently. I am looking for some small tasks to practice my skills. I hope that I can continue to exercise my problem-solving ability in practice.

The manager recently assigned me a very tedious task: a very important project has been completed, but it needs to be audited (anyway, it’s something like approval) and the entire project process needs to be submitted. sex documents. This project lasted a full year, during which countless meetings were held and plans were made, resulting in many files (drawings, spreadsheets, word documents, images) of various sizes. The current task is to find the 300 files specified for auditing from a large folder.

This is easy to do by hand, just copy the file name in the spreadsheet, and then search for it in the search bar to find it. It's okay to search for a dozen files, but it's too locked to do it manually for more than 300 files, isn't it?

Solution:

  1. Read 300 file names in the spreadsheet through python and clear the spaces

  2. Will Each file name is passed as a parameter to the windows batch file (.bat), allowing it to find whether the file exists and return the result

  3. python receives the result and prints it out

  4. Through the results, manually confirm again whether the one identified by the program is really not found, and whether it is just a slightly different name.

python script:

 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("程序结束")
Copy after login

search.bat code:

 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 )
Copy after login

Ah~~ My mood feels better, and I can escape from the complicated work to bask in the sun and drink tea. . .

The above is the detailed content of python - automatically find files based on spreadsheet data. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template