Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import win32api
- import win32file
- import os
- from tkinter import Tk
- from tkinter.filedialog import askopenfilename
- import tkinter.messagebox as msg
- import csv
- import datetime
- def save_to_pendrive(filename):
- drive_list = win32api.GetLogicalDriveStrings()
- drive_list = drive_list.split("\x00")[0:-1]
- date = datetime.date.today()
- for letter in drive_list:
- # check if the drive is of type removable
- if win32file.GetDriveType(letter) == win32file.DRIVE_REMOVABLE:
- try:
- os.makedirs(format(letter)+'MAKRA\\')
- return letter+'MAKRA\\'+str(date.strftime('%d-%m-%y_'))+filename # OUTPUT: G:\MAKRA\09-03-21_output.mac
- except FileExistsError:
- return letter+'MAKRA\\'+str(date.strftime('%d-%m-%y_'))+filename # OUTPUT: G:\MAKRA\09-03-21_output.mac
- pass
- Tk().withdraw()
- # Show file dialog
- input_file = askopenfilename()
- # for debug only
- # input_file ='test.csv'
- # Save file in 'MAKRA' direcotry on pendrive
- file_to_save = save_to_pendrive("output.mac")
- # For debug only
- print(file_to_save)
- # Create file on pendrive
- macro_file = open(file_to_save, 'w')
- # Add macro header at begin of output file
- header_macro = f"""[PCOMM SCRIPT HEADER]
- LANGUAGE=VBSCRIPT
- DESCRIPTION=
- [PCOMM SCRIPT SOURCE]
- OPTION EXPLICIT
- autECLSession.SetConnectionByName(ThisSessionName)
- REM This line calls the macro subroutine
- subSub1_
- sub subSub1_()\n"""
- macro_file.write(header_macro)
- with open(input_file) as csv_file:
- csv_reader = csv.DictReader(csv_file, delimiter=';')
- counter = 0
- for row in csv_reader:
- item_macro = ('autECLSession.autECLPS.SendKeys "[pf5]"\n'
- 'autECLSession.autECLOIA.WaitForInputReady\n'
- 'autECLSession.autECLPS.SendKeys "[pf13]"\n'
- 'autECLSession.autECLPS.SendKeys "'+row['Barcode']+'"\n'
- 'autECLSession.autECLPS.SendKeys "[enter]"\n'
- 'autECLSession.autECLOIA.WaitForInputReady\n'
- 'autECLSession.autECLPS.SendKeys "[tab]"\n'
- 'autECLSession.autECLPS.SendKeys "[tab]"\n'
- 'autECLSession.autECLPS.SendKeys "1"\n'
- 'autECLSession.autECLPS.SendKeys "[enter]"\n'
- 'autECLSession.autECLOIA.WaitForInputReady\n'
- 'autECLSession.autECLPS.SendKeys "[tab]"\n'
- 'autECLSession.autECLPS.SendKeys "[tab]"\n'
- 'autECLSession.autECLPS.SendKeys "[tab]"\n'
- 'autECLSession.autECLPS.SendKeys "[tab]"\n'
- 'autECLSession.autECLPS.SendKeys "[tab]"\n'
- 'autECLSession.autECLPS.SendKeys "[tab]"\n'
- 'autECLSession.autECLPS.SendKeys "[tab]"\n'
- 'autECLSession.autECLPS.SendKeys "[tab]"\n'
- 'autECLSession.autECLPS.SendKeys "[tab]"\n'
- 'autECLSession.autECLPS.SendKeys "[tab]"\n'
- 'autECLSession.autECLPS.SendKeys "[tab]"\n'
- 'autECLSession.autECLPS.SendKeys "[eraseeof]"\n'
- 'autECLSession.autECLPS.SendKeys "'+row['Weight']+'"\n'
- 'autECLSession.autECLPS.SendKeys "[tab]"\n'
- 'autECLSession.autECLPS.SendKeys "[eraseeof]"\n'
- 'autECLSession.autECLPS.SendKeys "'+row['Weight']+'"\n'
- 'autECLSession.autECLPS.SendKeys "[tab]"\n'
- 'autECLSession.autECLPS.SendKeys "[eraseeof]"\n'
- 'autECLSession.autECLPS.SendKeys "'+row['Height']+'"\n'
- 'autECLSession.autECLPS.SendKeys "[tab]"\n'
- 'autECLSession.autECLPS.SendKeys "[eraseeof]"\n'
- 'autECLSession.autECLPS.SendKeys "width"\n'
- 'autECLSession.autECLPS.SendKeys "[tab]"\n'
- 'autECLSession.autECLPS.SendKeys "[eraseeof]"\n'
- 'autECLSession.autECLPS.SendKeys "'+row['Length']+'"\n\n')
- macro_file.write(item_macro)
- counter += 1
- macro_file.close()
- msg.showinfo(title='Hello', message='Przetworzono linii: '+str(counter)+'\nPlik został zapisany w:\n'+file_to_save)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement