Python 엑셀 의 그림 을 읽 는 완벽 한 해결 방법

3599 단어 pythonexcel그림.
엑셀 에 있 는 그림 은 흔 하지만 python 을 통 해 엑셀 에 있 는 그림 을 읽 는 것 은 좋 은 해결 방법 이 없다.
인터넷 에서 매우 똑똑 한 방법 을 찾 았 는데 원 리 는 이렇다.
1.읽 을 엑셀 파일 접미사 이름 을 zip 로 바 꾸 고 압축 파일 로 바 꿉 니 다.
2.이 파일 의 압축 을 다시 풀 어 줍 니 다.
3.압축 을 푼 폴 더 에 엑셀 의 그림 이 있 습 니 다.
4.이렇게 엑셀 의 그림 을 읽 으 면 폴 더 의 그림 을 읽 는 것 이 되 고 일반 파일 과 마찬가지 로 여러 가지 처 리 를 할 수 있 습 니 다.
압축 해제 후의 압축 패 키 지 는 다음 과 같 습 니 다.

python 스 크 립 트 는 다음 과 같 습 니 다:

 '''
 File Name:  readexcelimg
 Author:   tim
 Date:    2018/7/26 19:52
 Description:   excel    ,      
     excel   zip ,  zip ,            ,      
 ''' 
 import os
 import zipfile
 #                 
 def isfile_exist(file_path):
   if not os.path.isfile(file_path):
     print("It's not a file or no such file exist ! %s" % file_path)
     return False
   else:
     return True
 #              , excel      .zip
 def change_file_name(file_path, new_type='.zip'):
   if not isfile_exist(file_path):
     return ''
   extend = os.path.splitext(file_path)[1] #        
   if extend != '.xlsx' and extend != '.xls':
     print("It's not a excel file! %s" % file_path)
     return False
   file_name = os.path.basename(file_path) #      
   new_name = str(file_name.split('.')[0]) + new_type #      ,   :xxx.zip
   dir_path = os.path.dirname(file_path) #         
   new_path = os.path.join(dir_path, new_name) #       
   if os.path.exists(new_path):
     os.remove(new_path)
   os.rename(file_path, new_path) #      ,       
   return new_path #         ,   
 #     
 def unzip_file(zipfile_path):
   if not isfile_exist(zipfile_path):
     return False
   if os.path.splitext(zipfile_path)[1] != '.zip':
     print("It's not a zip file! %s" % zipfile_path)
     return False
   file_zip = zipfile.ZipFile(zipfile_path, 'r')
   file_name = os.path.basename(zipfile_path) #      
   zipdir = os.path.join(os.path.dirname(zipfile_path), str(file_name.split('.')[0])) #         
   for files in file_zip.namelist():
     file_zip.extract(files, os.path.join(zipfile_path, zipdir)) #          
   file_zip.close()
   return True
 #          ,      
 def read_img(zipfile_path):
   if not isfile_exist(zipfile_path):
     return False
   dir_path = os.path.dirname(zipfile_path) #         
   file_name = os.path.basename(zipfile_path) #      
   pic_dir = 'xl' + os.sep + 'media' # excel      ,   ,   media  
   pic_path = os.path.join(dir_path, str(file_name.split('.')[0]), pic_dir)
   file_list = os.listdir(pic_path)
   for file in file_list:
     filepath = os.path.join(pic_path, file)
     print(filepath)
 #       
 def compenent(excel_file_path):
   zip_file_path = change_file_name(excel_file_path)
   if zip_file_path != '':
     if unzip_file(zip_file_path):
       read_img(zip_file_path)
 # main
 if __name__ == '__main__':
   compenent('/Users/Desktop/test/people.xlsx')
총결산
위 에서 말 한 것 은 소 편 이 소개 한 Python 이 엑셀 의 그림 을 읽 는 완벽 한 해결 방법 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.소 편 은 제때에 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기