Advertisement
Guest User

Untitled

a guest
Mar 9th, 2021
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.82 KB | None | 0 0
  1. import win32api
  2. import win32file
  3. import os
  4. from tkinter import Tk
  5. from tkinter.filedialog import askopenfilename
  6. import tkinter.messagebox as msg
  7. import csv
  8. import datetime
  9.  
  10. def save_to_pendrive(filename):
  11.     drive_list = win32api.GetLogicalDriveStrings()
  12.     drive_list = drive_list.split("\x00")[0:-1]
  13.     date = datetime.date.today()
  14.     for letter in drive_list:
  15.         # check if the drive is of type removable
  16.         if win32file.GetDriveType(letter) == win32file.DRIVE_REMOVABLE:
  17.             try:
  18.                 os.makedirs(format(letter)+'MAKRA\\')
  19.                 return letter+'MAKRA\\'+str(date.strftime('%d-%m-%y_'))+filename # OUTPUT: G:\MAKRA\09-03-21_output.mac
  20.             except FileExistsError:
  21.                 return letter+'MAKRA\\'+str(date.strftime('%d-%m-%y_'))+filename # OUTPUT: G:\MAKRA\09-03-21_output.mac
  22.                 pass
  23.            
  24.    
  25.  
  26. Tk().withdraw()
  27.  
  28.  # Show file dialog
  29. input_file = askopenfilename()
  30.  
  31. # for debug only
  32. # input_file ='test.csv'
  33.  
  34. # Save file in 'MAKRA' direcotry on pendrive
  35. file_to_save = save_to_pendrive("output.mac")
  36.  
  37. # For debug only
  38. print(file_to_save)
  39.  
  40. # Create file on pendrive
  41. macro_file = open(file_to_save, 'w')
  42.  
  43. # Add macro header at begin of output file
  44. header_macro = f"""[PCOMM SCRIPT HEADER]
  45. LANGUAGE=VBSCRIPT
  46. DESCRIPTION=
  47. [PCOMM SCRIPT SOURCE]
  48. OPTION EXPLICIT
  49. autECLSession.SetConnectionByName(ThisSessionName)
  50. REM This line calls the macro subroutine
  51. subSub1_
  52.  
  53. sub subSub1_()\n"""
  54.  
  55. macro_file.write(header_macro)
  56.  
  57. with open(input_file) as csv_file:
  58.     csv_reader = csv.DictReader(csv_file, delimiter=';')
  59.     counter = 0
  60.     for row in csv_reader:
  61.         item_macro = ('autECLSession.autECLPS.SendKeys "[pf5]"\n'
  62.         'autECLSession.autECLOIA.WaitForInputReady\n'
  63.         'autECLSession.autECLPS.SendKeys "[pf13]"\n'
  64.         'autECLSession.autECLPS.SendKeys "'+row['Barcode']+'"\n'
  65.         'autECLSession.autECLPS.SendKeys "[enter]"\n'
  66.         'autECLSession.autECLOIA.WaitForInputReady\n'
  67.         'autECLSession.autECLPS.SendKeys "[tab]"\n'
  68.         'autECLSession.autECLPS.SendKeys "[tab]"\n'
  69.         'autECLSession.autECLPS.SendKeys "1"\n'
  70.         'autECLSession.autECLPS.SendKeys "[enter]"\n'
  71.         'autECLSession.autECLOIA.WaitForInputReady\n'
  72.         'autECLSession.autECLPS.SendKeys "[tab]"\n'
  73.         'autECLSession.autECLPS.SendKeys "[tab]"\n'
  74.         'autECLSession.autECLPS.SendKeys "[tab]"\n'
  75.         'autECLSession.autECLPS.SendKeys "[tab]"\n'
  76.         'autECLSession.autECLPS.SendKeys "[tab]"\n'
  77.         'autECLSession.autECLPS.SendKeys "[tab]"\n'
  78.         'autECLSession.autECLPS.SendKeys "[tab]"\n'
  79.         'autECLSession.autECLPS.SendKeys "[tab]"\n'
  80.         'autECLSession.autECLPS.SendKeys "[tab]"\n'
  81.         'autECLSession.autECLPS.SendKeys "[tab]"\n'
  82.         'autECLSession.autECLPS.SendKeys "[tab]"\n'
  83.         'autECLSession.autECLPS.SendKeys "[eraseeof]"\n'
  84.         'autECLSession.autECLPS.SendKeys "'+row['Weight']+'"\n'
  85.         'autECLSession.autECLPS.SendKeys "[tab]"\n'
  86.         'autECLSession.autECLPS.SendKeys "[eraseeof]"\n'
  87.         'autECLSession.autECLPS.SendKeys "'+row['Weight']+'"\n'
  88.         'autECLSession.autECLPS.SendKeys "[tab]"\n'
  89.         'autECLSession.autECLPS.SendKeys "[eraseeof]"\n'
  90.         'autECLSession.autECLPS.SendKeys "'+row['Height']+'"\n'
  91.         'autECLSession.autECLPS.SendKeys "[tab]"\n'
  92.         'autECLSession.autECLPS.SendKeys "[eraseeof]"\n'
  93.         'autECLSession.autECLPS.SendKeys "width"\n'
  94.         'autECLSession.autECLPS.SendKeys "[tab]"\n'
  95.         'autECLSession.autECLPS.SendKeys "[eraseeof]"\n'
  96.         'autECLSession.autECLPS.SendKeys "'+row['Length']+'"\n\n')
  97.  
  98.         macro_file.write(item_macro)
  99.         counter += 1
  100.  
  101. macro_file.close()
  102. msg.showinfo(title='Hello', message='Przetworzono linii: '+str(counter)+'\nPlik został zapisany w:\n'+file_to_save)
  103.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement