Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import xlsxwriter, os, csv
- import Tkinter as tk
- from tkFileDialog import askdirectory
- import Pmw
- root = tk.Tk()
- root.title('Combine files for LabRadar')
- root.geometry('430x300')
- def combine(filePath, savePath, fileName):
- """Combines .csv files from LabRadar into multisheet .xlxs file, Scans single shot directory
- and saves .csv file paths into array, and .csv file names into array and added to multi-
- sheet .xlxs file """
- print (filePath, savePath, fileName)
- fileDir = [] # creating array for file paths
- sheetNumber = [] # creating array for file names
- for root, dirs, files in os.walk(filePath): #Scanning root path for shot group
- for file in sorted(files):
- if file.endswith('.csv'): # Isolating only .csv Files
- sheetNumber.append(file) # Creating array for file names for sheets
- fileDir.append(root+ '/' + file) # Creating array for file paths
- wb = xlsxwriter.Workbook(savePath + '/' + fileName + '.xlsx', {'strings_to_numbers': True})
- #Creating workbook that has text as well as numbers as numbers
- for i in range(0, len(sheetNumber)):
- ws = wb.add_worksheet(sheetNumber[i]) # Creating all sheets
- for i in range(0, len(sheetNumber)):
- ws = wb.get_worksheet_by_name(sheetNumber[i]) # Opening each sheet in order corisponding to
- # correct file
- with open(fileDir[i],'rb') as f:
- reader = csv.reader((line.replace('\0', '') for line in f), delimiter=';')
- for r, row in enumerate(reader):
- for c, val in enumerate(row):
- ws.write(r, c, val) # Writing the values from .csv file to .xlsx file one line at a time
- #print (r, c, val)
- def creatLabels(count):
- lblArray = []
- num = 1
- fld = 'SR'
- for root, dirs, files in os.walk('/Users/jeremylysinger/Desktop/LBR', topdown=True):
- for name in sorted(dirs):
- if name == fld + (str(num).zfill(4)):
- lblArray.append(name)
- num += 1
- return lblArray[count]
- def fileNames(number):
- global field
- stringLabel = tk.Label(root, text='Shot Group Name for String ' +
- str(number) + ':')
- stringLabel.pack()
- field = Pmw.EntryField(root, labelpos="w", label_text='Group:')
- field.setentry(str(number))
- field.pack()
- def nextWindow():
- print field.get()
- def fileWindow():
- global saveButton, convertButton, e, shotLabel, convertButton
- openButton.pack_forget()
- openLabel.pack_forget()
- b.pack_forget()
- saveButton = tk.Button(text='Save Location', command=saveLocation)
- saveButton.pack(pady=10, padx=10)
- e = 'Test 2'
- convertButton = tk.Button(text='Convert!', command=lambda: convert(rootDir, saveDir, 'Shot String '))
- convertButton.pack(pady=10, padx=10)
- def askFile():
- global rootDir
- rootDir = askdirectory()
- #print rootDir
- def saveLocation():
- global saveDir
- saveDir = askdirectory()
- #print saveDir
- def end():
- root.distroy()
- def convert(path, save, sName):
- saveButton.pack_forget()
- convertButton.pack_forget()
- count = 1
- fld = 'SR'
- for root, dirs, files in os.walk(path, topdown=True):
- for name in sorted(dirs):
- if name == fld + (str(count).zfill(4)):
- #combine(path + '/' + name, save, sName + str(count))
- fileNames(count)
- count += 1
- nextButton = tk.Button(text='Next!', command = lambda : nextWindow())
- nextButton.pack()
- openLabel = tk.Label(root, text='Select the destination of combined shots')
- openLabel.pack()
- openButton = tk.Button(text='Open Folder', command=askFile)
- openButton.pack(pady=10, padx=10)
- b = tk.Button(root, text="Start", command=fileWindow)
- b.pack()
- root.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement