83 lines
2.3 KiB
Python
83 lines
2.3 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""
|
|
Created on Fri Sep 13 16:49:05 2024
|
|
|
|
比较 stdBcdpath 和 filepath 中的 barcodes 列表,求出二者的并集和为包含在
|
|
stdBcdpath 中的 barcodes 清单
|
|
|
|
@author: ym
|
|
"""
|
|
import os
|
|
from openpyxl import load_workbook, Workbook
|
|
|
|
def read_xlsx():
|
|
stdBcdpath = r"\\192.168.1.28\share\已标注数据备份\对比数据\barcode\total_barcode_6588"
|
|
filepath = r"\\192.168.1.28\share\联华中环店\中环店商品信息.xlsx"
|
|
|
|
existingPath = r'\\192.168.1.28\share\联华中环店\中环店商品信息_已有商品.xlsx'
|
|
lackingPath = r'\\192.168.1.28\share\联华中环店\中环店商品信息_未包含商品.xlsx'
|
|
|
|
workbook = load_workbook(filename=filepath)
|
|
sheet = workbook['Sheet1']
|
|
barcodeCol = [sheet.cell(row=r, column=1).value for r in range(1, sheet.max_row+1)]
|
|
|
|
zhBarcodeList = [barcodeCol[i] for i in range(1, len(barcodeCol))]
|
|
|
|
stdBarcodeList = []
|
|
for filename in os.listdir(stdBcdpath):
|
|
filepath = os.path.join(stdBcdpath, filename)
|
|
if not os.path.isdir(filepath) or not filename.isdigit():
|
|
continue
|
|
stdBarcodeList.append(int(filename))
|
|
|
|
|
|
stdBarcodeSet = set(stdBarcodeList)
|
|
zhBarcodeSet = set(zhBarcodeList)
|
|
interBarcodes = list(zhBarcodeSet.intersection(stdBarcodeSet))
|
|
|
|
print(len(interBarcodes))
|
|
|
|
dest_wb1 = Workbook()
|
|
dest_sheet1 = dest_wb1.active
|
|
for row in sheet.iter_rows(min_row=1, max_col=sheet.max_column, values_only=True):
|
|
if str(row[0]).find("商品条码")>=0:
|
|
dest_sheet1.append(row)
|
|
|
|
if row[0] in interBarcodes:
|
|
dest_sheet1.append(row)
|
|
|
|
dest_wb1.save(filename=existingPath)
|
|
dest_wb1.close()
|
|
|
|
|
|
diffBarcodes = list(zhBarcodeSet.difference(stdBarcodeSet))
|
|
|
|
dest_wb2 = Workbook()
|
|
dest_sheet2 = dest_wb2.active
|
|
for row in sheet.iter_rows(min_row=1, max_col=sheet.max_column, values_only=True):
|
|
if str(row[0]).find("商品条码")>=0:
|
|
dest_sheet2.append(row)
|
|
|
|
if row[0] in diffBarcodes:
|
|
dest_sheet2.append(row)
|
|
|
|
dest_wb2.save(filename=lackingPath)
|
|
dest_wb2.close()
|
|
|
|
|
|
workbook.close()
|
|
|
|
|
|
if __name__ == '__main__':
|
|
# main()
|
|
|
|
read_xlsx()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|