• 목록
  • 아래로
  • 위로

앱상의 하차건과 당일 물량이 하차완료 전까지는 거의 맞지가 않는수준

그래서 엔플러스로 엑셀 저장후 데이터 프레임으로 만들어서

재가공후 10분단위당 하차건을 텍스트 파일에 저장후 카톡이나 문자로 알려주는걸

짜는중인데

 

1. 자동로그인후 미배달 -> 엑셀 파일 다운로드 

2. 다운된 엑셀파일을 전처리후 당일 물량건과 하차완료건을 구분하여  

3. 대리점 단톡방에 전송

 

요런 로직인데 현재 코드는 2번 전처리 미완성

출력은 잘되나

 

문제점이 있다 바로 DRM 파일이라는것

DRM 걸려있는경우 pandas 에서 정상적인 방법으로는 엑셀데이터를 로드할수 없다

그래서 찾아본것이 xlwings 라는 라이브러리인데 

이건 문법을 다시 확인하는데 시간이 또 소요될듯....

 

아래 변수 document 부분에  넣을때 다르게 들어감

 

 

코드

 

import pandas as pd

import sys

import os

 

data = '대한통운\\123.xlsx'

document = pd.read_excel(data)

 

#데이터 프레임으로 변환처리

df = pd.DataFrame(document)

 

# str.cat 으로 row 문자열 합치기

all = df['SM'].str.cat(df['최종스캔점소']).str.cat(df['최종스캔상태'])

 

# 데이터 합치기 df + all

df = pd.merge(df, all, how='outer', left_index=True, right_index=True)

 

# 시작시 기존 txt파일 삭제 처리

os.remove('대한통운\\today.txt')

 

# SM을 리스트에 담는다

sm_count = 0

sm_names = ['리스트 비공개']

 

# 전체 물량과 하차건 물량 갯수 추출

for sm_name in sm_names:

    a = df[df['SM_x']==sm_names[sm_count]].count()

    b = df[df['SM_y']==sm_name + '**Sub간선하차'].count()

    sm_count = sm_count + 1

    print(sm_name[0:3])

    print('전체', a['SM_x'], '건')

    print('익산', b['SM_y'], '건 하차완료\n')

    #print 결과를 txt파일에 일괄 쓰기

    sys.stdout = open('./대한통운/today.txt','a',encoding='utf-8')

 

# 파일 닫는다

sys.stdout.close()

 

 

현재 까지 완성된 결과

 

SDF.png

 

 

 

 

공유

facebooktwitterpinterestbandkakao story
퍼머링크

댓글 0