- 0
- 전북익산신용
- 조회 수 300
앱상의 하차건과 당일 물량이 하차완료 전까지는 거의 맞지가 않는수준
그래서 엔플러스로 엑셀 저장후 데이터 프레임으로 만들어서
재가공후 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()
현재 까지 완성된 결과