>백엔드 개발 >파이썬 튜토리얼 >python - 스프레드시트 데이터를 기반으로 자동으로 파일 찾기

python - 스프레드시트 데이터를 기반으로 자동으로 파일 찾기

巴扎黑
巴扎黑원래의
2017-06-23 16:01:042401검색

최근에 Python을 접하게 되었어요. 실전에서 계속해서 문제 해결 능력을 발휘할 수 있었으면 좋겠어요.

최근 관리자가 나에게 매우 지루한 작업을 할당했습니다. 매우 중요한 프로젝트가 완료되었지만 감사(어쨌든 승인과 같은 것)가 필요하고 전체 프로젝트의 프로세스 문서를 제출해야 합니다. 이 프로젝트는 1년 동안 진행되었으며, 그 동안 수많은 회의가 진행되고 계획이 수립되었으며, 결과적으로 다양한 크기의 수많은 파일(도면, 스프레드시트, 워드 문서, 이미지)이 탄생했습니다. 현재 작업은 큰 폴더에서 감사용으로 지정된 300개의 파일을 찾는 것입니다.

이 작업은 손으로 쉽게 수행할 수 있습니다. 스프레드시트에서 파일 이름을 복사한 다음 검색창에서 검색하여 찾으세요. 수십개의 파일을 검색하는 것은 괜찮은데, 300개가 넘는 파일을 수동으로 검색하기엔 너무 잠겨있는거 ​​아닌가요?

해결책:

  1. 파이썬을 사용하여 스프레드시트에서 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:운영 체제 모듈다음 기사:운영 체제 모듈