##// END OF EJS Templates
***
ralonso -
r34:35
parent child
Show More
@@ -1,472 +1,485
1 # -*- coding: utf-8 -*-
1 # -*- coding: utf-8 -*-
2
2
3 """
3 """
4 Module implementing MainWindow.
4 Module implementing MainWindow.
5 """
5 """
6
6
7 from PyQt4.QtGui import QMainWindow
7 from PyQt4.QtGui import QMainWindow
8 from PyQt4.QtCore import pyqtSignature
8 from PyQt4.QtCore import pyqtSignature
9 from Ui_MainWindow import Ui_MainWindow
9 from Ui_MainWindow import Ui_MainWindow
10 from PyQt4 import QtGui
10 from PyQt4 import QtGui
11 from subprocess import *
11 from subprocess import *
12 import sys
12 import sys
13 import os
13 import os
14 import subprocess
14 import subprocess
15 import commands
15 import commands
16
16
17 class MainWindow(QMainWindow, Ui_MainWindow):
17 class MainWindow(QMainWindow, Ui_MainWindow):
18 """
18 """
19 Class documentation goes here.
19 Class documentation goes here.
20 """
20 """
21
21
22 def __init__(self, parent = None):
22 def __init__(self, parent = None):
23 QMainWindow.__init__(self, parent)
23 QMainWindow.__init__(self, parent)
24 self.setupUi(self)
24 self.setupUi(self)
25 self.setupUi2()
25 self.setupUi2()
26
26
27 #redirige salida estandar
27 #redirige salida estandar
28 sys.stdout = self
28 sys.stdout = self
29
29
30
30
31 def setupUi2(self):
31 def setupUi2(self):
32 """
32 """
33 Se usa para inicializar ciertos parametros para pruebas
33 Se usa para inicializar ciertos parametros para pruebas
34 """
34 """
35 self.txtDpath.setText('/home/ricardoar/optional/STORAGE/Data/RAW_EXP/JASMET/')
35 self.txtDpath.setText('/home/ricardoar/optional/STORAGE/Data/RAW_EXP/JASMET/')
36 self.txtRpath.setText('/home/ricardoar/optional/STORAGE/prueba1_jro_backup_manager')
36 self.txtRpath.setText('/home/ricardoar/optional/STORAGE/prueba1_jro_backup_manager')
37 self.txtElabel.setText('JASMET')
37 self.txtElabel.setText('JASMET')
38 self.statusDpath = True
38 self.statusDpath = True
39 self.statusRpath = True
39 self.statusRpath = True
40 # self.statusDpath = False
40 # self.statusDpath = False
41 # self.statusRpath = False
41 # self.statusRpath = False
42
42
43
43
44 #
44 #
45 #Deteccion de los dispositvos de grabacion
45 #Deteccion de los dispositvos de grabacion
46 #
46 #
47 #var_cmd="wodim --devices | grep /dev/ | awk -F\' '{print $2}'" #Funciona en consola pero no en python ΒΏ?
47 #var_cmd="wodim --devices | grep /dev/ | awk -F\' '{print $2}'" #Funciona en consola pero no en python ΒΏ?
48 var_cmd="wodim --devices | grep /dev/ | awk '{print $2}' | awk -F= '{print $2}'"
48 var_cmd="wodim --devices | grep /dev/ | awk '{print $2}' | awk -F= '{print $2}'"
49 var_output = commands.getstatusoutput(var_cmd)
49 var_output = commands.getstatusoutput(var_cmd)
50 if var_output[0] != 0:
50 if var_output[0] != 0:
51 self.txtInfo.setText("No se pudo encontrar los dispositivos de grabacion, output_error:" + str(var_output))
51 self.txtInfo.setText("No se pudo encontrar los dispositivos de grabacion, output_error:" + str(var_output))
52 else:
52 else:
53 self.txtInfo.append("dispositivos encontrados")
53 self.txtInfo.append("dispositivos encontrados")
54 var_devices = var_output[1].split('\n')
54 var_devices = var_output[1].split('\n')
55
55
56 var_tmp=[]
56 var_tmp=[]
57 for i in range(0, 4):
57 for i in range(0, 4):
58 if i < len(var_devices):
58 if i < len(var_devices):
59 var_len = len(var_devices[i])
59 var_len = len(var_devices[i])
60 var_tmp.append(var_devices[i][1:var_len - 1])
60 var_tmp.append(var_devices[i][1:var_len - 1])
61 else:
61 else:
62 var_tmp.append('')
62 var_tmp.append('')
63
63
64 #Se escriben los dispostivos correspodientes, si existen
64 #Se escriben los dispostivos correspodientes, si existen
65 self.txtDeviceA.setText(str(var_tmp[0]))
65 self.txtDeviceA.setText(str(var_tmp[0]))
66 self.txtDeviceB.setText(str(var_tmp[1]))
66 self.txtDeviceB.setText(str(var_tmp[1]))
67 self.txtDeviceC.setText(str(var_tmp[2]))
67 self.txtDeviceC.setText(str(var_tmp[2]))
68 self.txtDeviceD.setText(str(var_tmp[3]))
68 self.txtDeviceD.setText(str(var_tmp[3]))
69 #Se desactivan los que no existen
69 #Se desactivan los que no existen
70 if len(var_tmp[0]) == 0 :
70 if len(var_tmp[0]) == 0 :
71 self.chkDevA.setChecked(False)
71 self.chkDevA.setChecked(False)
72 self.chkDevA.setEnabled(False)
72 self.chkDevA.setEnabled(False)
73 if len(var_tmp[1]) == 0 :
73 if len(var_tmp[1]) == 0 :
74 self.chkDevB.setChecked(False)
74 self.chkDevB.setChecked(False)
75 self.chkDevB.setEnabled(False)
75 self.chkDevB.setEnabled(False)
76 if len(var_tmp[2]) == 0 :
76 if len(var_tmp[2]) == 0 :
77 self.chkDevC.setChecked(False)
77 self.chkDevC.setChecked(False)
78 self.chkDevC.setEnabled(False)
78 self.chkDevC.setEnabled(False)
79 if len(var_tmp[3]) == 0 :
79 if len(var_tmp[3]) == 0 :
80 self.chkDevD.setChecked(False)
80 self.chkDevD.setChecked(False)
81 self.chkDevD.setEnabled(False)
81 self.chkDevD.setEnabled(False)
82
82
83
83
84 def write(self, txt):
84 def write(self, txt):
85 """
85 """
86 Escribe la salida estandar eb txtInfo
86 Escribe la salida estandar eb txtInfo
87 """
87 """
88 self.txtInfo.append(str(txt))
88 self.txtInfo.append(str(txt))
89
89
90
90
91 @pyqtSignature("")
91 @pyqtSignature("")
92 def on_btnDpath_clicked(self):
92 def on_btnDpath_clicked(self):
93 """
93 """
94 Permite seleccionar graficamente el direcorio de los datos a grabar
94 Permite seleccionar graficamente el direcorio de los datos a grabar
95 """
95 """
96 var_Dpath= QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly)
96 var_Dpath= QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly)
97 self.txtDpath.setText(var_Dpath)
97 self.txtDpath.setText(var_Dpath)
98
98
99 #llamada a funcion
99 #llamada a funcion
100 self.on_txtDpath_editingFinished()
100 self.on_txtDpath_editingFinished()
101
101
102
102
103 @pyqtSignature("")
103 @pyqtSignature("")
104 def on_btnRpath_clicked(self):
104 def on_btnRpath_clicked(self):
105 """
105 """
106 Permite seleccionar graficamente el direcorio del proyecto
106 Permite seleccionar graficamente el direcorio del proyecto
107 """
107 """
108 var_Rpath = QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly)
108 var_Rpath = QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly)
109 self.txtRpath.setText(var_Rpath)
109 self.txtRpath.setText(var_Rpath)
110
110
111 #llamada a funcion
111 #llamada a funcion
112 self.on_txtRpath_editingFinished()
112 self.on_txtRpath_editingFinished()
113
113
114
114
115 @pyqtSignature("")
115 @pyqtSignature("")
116 def on_txtDpath_editingFinished(self):
116 def on_txtDpath_editingFinished(self):
117 """
117 """
118 Permite buscar los archivos de extension seleccionada en la ruta de de datos
118 Permite buscar los archivos de extension seleccionada en la ruta de de datos
119 y cargar los valores para el rango de tiempo a ser grabado
119 y cargar los valores para el rango de tiempo a ser grabado
120 """
120 """
121
121
122 #Usando el modulo "subprocess", eric4 pide seleccion del tipo de subproceso (padre o hijo)
122 #Usando el modulo "subprocess", eric4 pide seleccion del tipo de subproceso (padre o hijo)
123 #por ello se prefiere usar el modulo "commands"
123 #por ello se prefiere usar el modulo "commands"
124 #p1= Popen(['find', var_Dpath, '-name', '*.r'], stdout=PIPE)
124 #p1= Popen(['find', var_Dpath, '-name', '*.r'], stdout=PIPE)
125 #p2= Popen(['awk', '-F/', '{print substr($NF,2,7)}'], stdin=p1.stdout, stdout=PIPE)
125 #p2= Popen(['awk', '-F/', '{print substr($NF,2,7)}'], stdin=p1.stdout, stdout=PIPE)
126 #output_p2= p2.communicate()[0]
126 #output_p2= p2.communicate()[0]
127 #self.txtInfo.setText(output_p2)
127 #self.txtInfo.setText(output_p2)
128
128
129 #Se carga la variable con la ruta de datos
129 #Se carga la variable con la ruta de datos
130 var_Dpath=self.txtDpath.text()
130 var_Dpath=self.txtDpath.text()
131
131
132 #Se verifica que la ruta exista y sea un directorio
132 #Se verifica que la ruta exista y sea un directorio
133 var_cmd="test -d "+str(var_Dpath)
133 var_cmd="test -d "+str(var_Dpath)
134 var_output=commands.getstatusoutput(var_cmd)[0]
134 var_output=commands.getstatusoutput(var_cmd)[0]
135 if var_output != 0:
135 if var_output != 0:
136 self.statusDpath = False
136 self.statusDpath = False
137 self.txtInfo.setText("Ruta no valida, output_error:" + str(var_output))
137 self.txtInfo.setText("Ruta no valida, output_error:" + str(var_output))
138 return
138 return
139 else:
139 else:
140 self.statusDpath = True
140 self.statusDpath = True
141 self.txtInfo.append("Ruta valida, sin error:" + str(var_Dpath))
141 self.txtInfo.append("Ruta valida, sin error:" + str(var_Dpath))
142
142
143 #Se buscan los archivos del tipo especificado
143 #Se buscan los archivos del tipo especificado
144 var_Dtype=self.txtDtype.text()
144 var_Dtype=self.txtDtype.text()
145 var_cmd="find " + str(var_Dpath) + " -name *."+ str(var_Dtype) +" | awk -F/ '{print substr($NF,2,7)}' | sort| uniq"
145 var_cmd="find " + str(var_Dpath) + " -name *."+ str(var_Dtype) +" | awk -F/ '{print substr($NF,2,7)}' | sort| uniq"
146 output_p2=commands.getstatusoutput(var_cmd)[1]
146 output_p2=commands.getstatusoutput(var_cmd)[1]
147
147
148 #Se cargan las listas para seleccionar StartDay y StopDay (QComboBox)
148 #Se cargan las listas para seleccionar StartDay y StopDay (QComboBox)
149 self.var_list=[]
149 self.var_list=[]
150 for i in range(0, (len(output_p2)+1)/8):
150 for i in range(0, (len(output_p2)+1)/8):
151 self.var_list.append(output_p2[8*i:8*(i+1)-1])
151 self.var_list.append(output_p2[8*i:8*(i+1)-1])
152
152
153 self.lstStartDay.clear()
153 self.lstStartDay.clear()
154 self.lstStopDay.clear()
154 self.lstStopDay.clear()
155
155
156 for i in self.var_list:
156 for i in self.var_list:
157 self.lstStartDay.addItem(i)
157 self.lstStartDay.addItem(i)
158 self.lstStopDay.addItem(i)
158 self.lstStopDay.addItem(i)
159
159
160 self.lstStopDay.setCurrentIndex(self.lstStartDay.count()-1)
160 self.lstStopDay.setCurrentIndex(self.lstStartDay.count()-1)
161
161
162
162
163 @pyqtSignature("")
163 @pyqtSignature("")
164 def on_txtRpath_editingFinished(self):
164 def on_txtRpath_editingFinished(self):
165 """
165 """
166 Valida la ruta del proyecto
166 Valida la ruta del proyecto
167 """
167 """
168 #Se carga la variable con la ruta del proyecto
168 #Se carga la variable con la ruta del proyecto
169 var_Rpath=self.txtRpath.text()
169 var_Rpath=self.txtRpath.text()
170
170
171 #Se verifica que la ruta exista y sea un directorio
171 #Se verifica que la ruta exista y sea un directorio
172 var_cmd="test -d "+str(var_Rpath)
172 var_cmd="test -d "+str(var_Rpath)
173 var_output=commands.getstatusoutput(var_cmd)[0]
173 var_output=commands.getstatusoutput(var_cmd)[0]
174 if var_output != 0:
174 if var_output != 0:
175 self.statusRpath = False
175 self.statusRpath = False
176 self.txtInfo.append("Ruta no valida, output_error:" + str(var_output))
176 self.txtInfo.append("Ruta no valida, output_error:" + str(var_output))
177 return
177 return
178 else:
178 else:
179 self.statusRpath = True
179 self.statusRpath = True
180 self.txtInfo.append("Ruta valida, sin error:" + str(var_Rpath))
180 self.txtInfo.append("Ruta valida, sin error:" + str(var_Rpath))
181
181
182
182
183 @pyqtSignature("int")
183 @pyqtSignature("int")
184 def on_lstDtype_activated(self, index):
184 def on_lstDtype_activated(self, index):
185 """
185 """
186 Permite elegir entre los tipos de archivos
186 Permite elegir entre los tipos de archivos
187 """
187 """
188 if index == 0:
188 if index == 0:
189 var_type='r'
189 var_type='r'
190 elif index == 1:
190 elif index == 1:
191 var_type='pdata'
191 var_type='pdata'
192 elif index == 2:
192 elif index == 2:
193 var_type='sswma'
193 var_type='sswma'
194
194
195 if index != 3:
195 if index != 3:
196 self.txtDtype.setText(var_type)
196 self.txtDtype.setText(var_type)
197 self.txtDtype.setReadOnly(True)
197 self.txtDtype.setReadOnly(True)
198 self.on_txtDpath_editingFinished()
198 self.on_txtDpath_editingFinished()
199 else:
199 else:
200 self.txtDtype.setText('')
200 self.txtDtype.setText('')
201 self.txtDtype.setReadOnly(False)
201 self.txtDtype.setReadOnly(False)
202
202
203
203
204 @pyqtSignature("")
204 @pyqtSignature("")
205 def on_txtDtype_editingFinished(self):
205 def on_txtDtype_editingFinished(self):
206 """
206 """
207 Se activa cuando el tipo de archivo es ingresado manualmente
207 Se activa cuando el tipo de archivo es ingresado manualmente
208 """
208 """
209 #llamada a funcion
209 #llamada a funcion
210 self.on_txtDpath_editingFinished()
210 self.on_txtDpath_editingFinished()
211
211
212
212
213 @pyqtSignature("int") #CLOSED
213 @pyqtSignature("int") #CLOSED
214 def on_lstStartDay_activated(self, index):
214 def on_lstStartDay_activated(self, index):
215 """
215 """
216 Cambia la lista de opciones en lstStopDay
216 Cambia la lista de opciones en lstStopDay
217 """
217 """
218 var_StopDay_index=self.lstStopDay.count() - self.lstStopDay.currentIndex()
218 var_StopDay_index=self.lstStopDay.count() - self.lstStopDay.currentIndex()
219 self.lstStopDay.clear()
219 self.lstStopDay.clear()
220
220
221 for i in self.var_list[index:]:
221 for i in self.var_list[index:]:
222 self.lstStopDay.addItem(i)
222 self.lstStopDay.addItem(i)
223
223
224 self.lstStopDay.setCurrentIndex(self.lstStopDay.count() - var_StopDay_index)
224 self.lstStopDay.setCurrentIndex(self.lstStopDay.count() - var_StopDay_index)
225
225
226
226
227 @pyqtSignature("int") #CLOSED
227 @pyqtSignature("int") #CLOSED
228 def on_lstStopDay_activated(self, index):
228 def on_lstStopDay_activated(self, index):
229 """
229 """
230 Cambia la lista de opciones en lstStartDay
230 Cambia la lista de opciones en lstStartDay
231 """
231 """
232 var_StartDay_index=self.lstStartDay.currentIndex()
232 var_StartDay_index=self.lstStartDay.currentIndex()
233 var_end_index = self.lstStopDay.count() - index
233 var_end_index = self.lstStopDay.count() - index
234 self.lstStartDay.clear()
234 self.lstStartDay.clear()
235
235
236 for i in self.var_list[:len(self.var_list) - var_end_index + 1]:
236 for i in self.var_list[:len(self.var_list) - var_end_index + 1]:
237 self.lstStartDay.addItem(i)
237 self.lstStartDay.addItem(i)
238
238
239 self.lstStartDay.setCurrentIndex(var_StartDay_index)
239 self.lstStartDay.setCurrentIndex(var_StartDay_index)
240
240
241
241
242 @pyqtSignature("int") #CLOSED
242 @pyqtSignature("int") #CLOSED
243 def on_lstDcapacity_activated(self, index):
243 def on_lstDcapacity_activated(self, index):
244 """
244 """
245 Permite elegir el tamaΓ±o del disco
245 Permite elegir el tamaΓ±o del disco
246 """
246 """
247 if index == 0:
247 if index == 0:
248 var_size=25.0
248 var_size=25.0
249 elif index == 1:
249 elif index == 1:
250 var_size=8.5
250 var_size=8.5
251 elif index == 2:
251 elif index == 2:
252 var_size=4.7
252 var_size=4.7
253 elif index == 3:
253 elif index == 3:
254 var_size=0.7
254 var_size=0.7
255
255
256 if index != 4:
256 if index != 4:
257 self.txtDcapacity.setText(str(var_size*10**9/1024**2))
257 self.txtDcapacity.setText(str(var_size*10**9/1024**2))
258 self.txtDcapacity.setReadOnly(True)
258 self.txtDcapacity.setReadOnly(True)
259 else:
259 else:
260 self.txtDcapacity.setText('')
260 self.txtDcapacity.setText('')
261 self.txtDcapacity.setReadOnly(False)
261 self.txtDcapacity.setReadOnly(False)
262
262
263
263
264 @pyqtSignature("")
264 @pyqtSignature("")
265 def on_btnGbkp_clicked(self):
265 def on_btnGbkp_clicked(self):
266 """
266 """
267 Cuando se presiona el boton btnGbkp
267 Cuando se presiona el boton btnGbkp
268 """
268 """
269
269
270 #Verifica que las rutas sean validas
270 #Verifica que las rutas sean validas
271 if self.statusDpath == False or self.statusRpath == False:
271 if self.statusDpath == False or self.statusRpath == False:
272 if self.statusDpath == False:
272 if self.statusDpath == False:
273 self.txtInfo.append("Ruta de datos no valida")
273 self.txtInfo.append("Ruta de datos no valida")
274 if self.statusRpath == False:
274 if self.statusRpath == False:
275 self.txtInfo.append("Ruta de proyecto no valida")
275 self.txtInfo.append("Ruta de proyecto no valida")
276 return
276 return
277
277
278 #Crea las carpetas en la ruta del proyecto y verifica que se crearon correctamente
278 #Crea las carpetas en la ruta del proyecto y verifica que se crearon correctamente
279 var_Rpath=self.txtRpath.text()
279 var_Rpath=self.txtRpath.text()
280 var_dirs='/{gpath,iso,ppath}'
280 var_dirs='/{gpath,iso,ppath}'
281 var_cmd="mkdir -p "+str(var_Rpath)+str(var_dirs)
281 var_cmd="mkdir -p "+str(var_Rpath)+str(var_dirs)
282 var_output=commands.getstatusoutput(var_cmd)[0]
282 var_output=commands.getstatusoutput(var_cmd)[0]
283 if var_output != 0:
283 if var_output != 0:
284 self.txtInfo.append("No se pudieron crear los directorios, output_error:" + str(var_output))
284 self.txtInfo.append("No se pudieron crear los directorios, output_error:" + str(var_output))
285 return
285 return
286 else:
286 else:
287 self.txtInfo.append('Carpetas creadas correctamente')
287 self.txtInfo.append('Carpetas creadas correctamente')
288
288
289 #Cargando variables con los parametros
289 #Cargando variables con los parametros
290 var_Dpath=self.txtDpath.text()
290 var_Dpath=self.txtDpath.text()
291 var_Rpath=self.txtRpath.text()
291 var_Rpath=self.txtRpath.text()
292 var_Rpath_ppath=var_Rpath+"/ppath" #Ruta de los archivos a grabar
292 var_Rpath_ppath=var_Rpath+"/ppath" #Ruta de los archivos a grabar
293 var_sublist=[]
293 var_sublist=[]
294 for i in self.var_list[self.lstStartDay.currentIndex():self.lstStartDay.currentIndex() + self.lstStopDay.currentIndex()+1]:
294 for i in self.var_list[self.lstStartDay.currentIndex():self.lstStartDay.currentIndex() + self.lstStopDay.currentIndex()+1]:
295 var_sublist.append(i)
295 var_sublist.append(i)
296 if len(var_sublist) == 0:
296 if len(var_sublist) == 0:
297 self.txtInfo.append("No existen archivos encontrados")
297 self.txtInfo.append("No existen archivos encontrados")
298 return
298 return
299 #self.txtInfo.append('elementos: '+str(len(var_sublist)))
299 #self.txtInfo.append('elementos: '+str(len(var_sublist)))
300
300
301
301
302 var_Dtype=self.txtDtype.text()
302 var_Dtype=self.txtDtype.text()
303 var_Dcapacity=float(self.txtDcapacity.text())*1024 #tamaΓ±o en KB
303 var_Dcapacity=float(self.txtDcapacity.text())*1024 #tamaΓ±o en KB
304
304
305 #Busca los archivos con los parametros de busqueda
305 #Busca los archivos con los parametros de busqueda
306 var_files_list=[]
306 var_files_list=[]
307 for var_doy in var_sublist:
307 for var_doy in var_sublist:
308 var_cmd="find " + str(var_Dpath) + " -name ?"+var_doy+"???."+ str(var_Dtype) + " |sort"
308 var_cmd="find " + str(var_Dpath) + " -name ?"+var_doy+"???."+ str(var_Dtype) + " |sort"
309 var_output=commands.getstatusoutput(var_cmd)[1]
309 var_output=commands.getstatusoutput(var_cmd)[1]
310 for var_file in var_output.split():
310 for var_file in var_output.split():
311 var_files_list.append(var_file) #Almacena cada archivo en la lista
311 var_files_list.append(var_file) #Almacena cada archivo en la lista
312
312
313 #
313 #
314 #Genera la lista de archivos .dat que contienen los archivos a grabar en cada DVD
314 #Genera la lista de archivos .dat que contienen los archivos a grabar en cada DVD
315 #
315 #
316 var_n=0 #Numero del DVD actual
316 var_n=0 #Numero del DVD actual
317 var_tmp=0 #Se usa para acumulanr el tamaΓ±o de los archivos de la lista
317 var_tmp=0 #Se usa para acumulanr el tamaΓ±o de los archivos de la lista
318 var_files_list_2=[] #Se usa para almacenar la lista de archivos agrbar en cada DVD
318 var_files_list_2=[] #Se usa para almacenar la lista de archivos agrbar en cada DVD
319
319
320 for i in var_files_list: #Se asignan en i los archivos de la lista
320 for i in var_files_list: #Se asignan en i los archivos de la lista
321 var_size_i=os.path.getsize(i)/1024+1 #tamaΓ±o en KB del archivo de la lista, se suma 1 KB para evitar problemas al momento de sumar
321 var_size_i=os.path.getsize(i)/1024+1 #tamaΓ±o en KB del archivo de la lista, se suma 1 KB para evitar problemas al momento de sumar
322 var_tmp += var_size_i #Se acumulan el tamaΓ±o de los archivos de la lista
322 var_tmp += var_size_i #Se acumulan el tamaΓ±o de los archivos de la lista
323
323
324 #Si el tamaΓ±o acumulado es mayor que el de el DVD
324 #Si el tamaΓ±o acumulado es mayor que el de el DVD
325 if var_tmp > var_Dcapacity:
325 if var_tmp > var_Dcapacity:
326 var_tmp -= var_size_i #se quita el tamaΓ±o sumado para mostrar el tamaΓ±o real
326 var_tmp -= var_size_i #se quita el tamaΓ±o sumado para mostrar el tamaΓ±o real
327 #se agregan los ceros necesarios
327 #se agregan los ceros necesarios
328 if len(str(var_n)) < 4:
328 if len(str(var_n)) < 4:
329 var_n2=""
329 var_n2=""
330 for k in range(0, 4-len(str(var_n))):
330 for k in range(0, 4-len(str(var_n))):
331 var_n2 = var_n2+"0"
331 var_n2 = var_n2+"0"
332 #se crea un archivo con numeral en el sufijo y extension .dat
332 #se crea un archivo con numeral en el sufijo y extension .dat
333 var_file = open(var_Rpath_ppath+"/"+self.txtElabel.text()+"_"+str(var_n2)+str(var_n)+".dat","w")
333 var_file = open(var_Rpath_ppath+"/"+self.txtElabel.text()+"_"+str(var_n2)+str(var_n)+".dat","w")
334 #Se aΓ±ade la lista de archivos a grabar en el DVD al archivo .dat
334 #Se aΓ±ade la lista de archivos a grabar en el DVD al archivo .dat
335 for line in var_files_list_2:
335 for line in var_files_list_2:
336 var_tmp_path=(line.split(var_Dpath)[1]).split('/')
336 var_tmp_path=(line.split(var_Dpath)[1]).split('/')
337 var_tmp_path2="/"
337 var_tmp_path2="/"
338 for l in range(0, len(var_tmp_path)-1):
338 for l in range(0, len(var_tmp_path)-1):
339 var_tmp_path2=var_tmp_path2+str(var_tmp_path[l])+"/"
339 var_tmp_path2=var_tmp_path2+str(var_tmp_path[l])+"/"
340 var_file.write(var_tmp_path2+'=')
340 var_file.write(var_tmp_path2+'=')
341 var_file.write(line+'\n')
341 var_file.write(line+'\n')
342 var_file.close()
342 var_file.close()
343
343
344 var_tmp = var_size_i #Se asigna a la variable el tamaΓ±o del archivo actual
344 var_tmp = var_size_i #Se asigna a la variable el tamaΓ±o del archivo actual
345 var_files_list_2=[] #Se reinicia la lista
345 var_files_list_2=[] #Se reinicia la lista
346 var_n += 1
346 var_n += 1
347 var_files_list_2.append(i)
347 var_files_list_2.append(i)
348
348
349 #se agregan los ceros necesarios
349 #se agregan los ceros necesarios
350 if len(str(var_n)) < 4:
350 if len(str(var_n)) < 4:
351 var_n2=""
351 var_n2=""
352 for k in range(0, 4-len(str(var_n))):
352 for k in range(0, 4-len(str(var_n))):
353 var_n2 = var_n2+"0"
353 var_n2 = var_n2+"0"
354 #se crea un archivo con numeral en el sufijo y extension .dat
354 #se crea un archivo con numeral en el sufijo y extension .dat
355 var_file = open(var_Rpath_ppath+"/"+self.txtElabel.text()+"_"+str(var_n2)+str(var_n)+".dat","w")
355 var_file = open(var_Rpath_ppath+"/"+self.txtElabel.text()+"_"+str(var_n2)+str(var_n)+".dat","w")
356 #Se aΓ±ade la lista de archivos a grabar en el DVD al archivo .dat
356 #Se aΓ±ade la lista de archivos a grabar en el DVD al archivo .dat
357 for line in var_files_list_2:
357 for line in var_files_list_2:
358 var_tmp_path=(line.split(var_Dpath)[1]).split('/')
358 var_tmp_path=(line.split(var_Dpath)[1]).split('/')
359 var_tmp_path2="/"
359 var_tmp_path2="/"
360 for l in range(0, len(var_tmp_path)-1):
360 for l in range(0, len(var_tmp_path)-1):
361 var_tmp_path2=var_tmp_path2+str(var_tmp_path[l])+"/"
361 var_tmp_path2=var_tmp_path2+str(var_tmp_path[l])+"/"
362 var_file.write(var_tmp_path2+'=')
362 var_file.write(var_tmp_path2+'=')
363 var_file.write(line+'\n')
363 var_file.write(line+'\n')
364 var_file.close()
364 var_file.close()
365
365
366 #
366 #
367 #Genera los archivos postscript
367 #Genera los archivos postscript
368 #
368 #
369 var_n_files = var_n
369 var_n_files = var_n
370 var_n = 0
370 var_n = 0
371 for i in range(0, var_n_files+1):
371 for var_n in range(0, var_n_files+1):
372 print i
372 print var_n
373 #se agregan los ceros necesarios
373 #se agregan los ceros necesarios
374 if len(str(var_n)) < 4:
374 if len(str(var_n)) < 4:
375 var_n2=""
375 var_n2=""
376 for k in range(0, 4-len(str(var_n))):
376 for k in range(0, 4-len(str(var_n))):
377 var_n2 = var_n2+"0"
377 var_n2 = var_n2+"0"
378
378
379 #se abren los archivos .dat en modo lectura
379 #se abren los archivos .dat en modo lectura
380 var_file = open(var_Rpath_ppath+"/"+self.txtElabel.text()+"_"+str(var_n2)+str(var_n)+".dat","r")
380 var_file = open(var_Rpath_ppath+"/"+self.txtElabel.text()+"_"+str(var_n2)+str(var_n)+".dat","r")
381 lines=var_file.readlines()
381 lines=var_file.readlines()
382 print str(len(lines))
382 #print str(len(lines))
383
383 #Se crean los archivos .print con los cuales se crearan los archivos .ps
384 #Se crean los archivos .print con los cuales se crearan los archivos .ps
384
385 var_first_folder = lines[0].split('=')[0]
385 var_first_folder = lines[0].split('=')[0]
386 var_first_file = (lines[0].split('=')[1]).split('/')[-1][1:11]
386 var_first_file = (lines[0].split('=')[1])[:-1]
387 #var_first_file = (lines[0].split('=')[1]).split('/')[-1][1:11]
387
388
388 for j in range(1, len(lines)-1):
389 for j in range(1, len(lines)-1):
389 var_tmp_folder = lines[j].split('=')[0]
390 var_tmp_folder = lines[j].split('=')[0]
390 var_tmp_file = (lines[j].split('=')[1]).split('/')[-1][1:11]
391 var_tmp_file = (lines[j].split('=')[1])[:-1]
392 #var_tmp_file = (lines[j].split('=')[1]).split('/')[-1][1:11]
391
393
392 # Si el subfolder superior o la fecha del archivo cambia se genera una nueva linea
394 # Si el subfolder superior o la fecha del archivo cambia se genera una nueva linea
393 if (var_tmp_folder != var_first_folder) or (var_tmp_file[0:7] != var_first_file[0:7]):
395 if (var_tmp_folder != var_first_folder) or (var_tmp_file[0:-5] != var_first_file[0:-5]):
394 if var_first_folder == '/':
396 if var_first_folder == '/':
395 var_folder = self.txtElabel.text()
397 var_folder = self.txtElabel.text()
396 else:
398 else:
397 var_folder = var_first_folder.split('/')[1]
399 var_folder = var_first_folder.split('/')[1]
398
400
399 print var_first_folder[0:4]+" "+var_first_folder[4:7]+" "+var_folder +" "+\
401 print var_first_file[-12:-8]+" "+var_first_file[-8:-5]+" "+var_folder +" "+var_first_file[-5:-2]+" "\
400 var_first_folder[7:10]+" "+(lines[j-1].split('=')[1]).split('/')[-1][8:11]
402 +((lines[j-1].split('=')[1])[:-1])[-5:-2]
401
403
402 var_n += 1
404 var_first_folder = lines[j].split('=')[0]
405 var_first_file = (lines[j].split('=')[1])[:-1]
406
407
408 if var_first_folder == '/':
409 var_folder = self.txtElabel.text()
410 else:
411 var_folder = var_first_folder.split('/')[1]
412
413 print var_first_file[-12:-8]+" "+var_first_file[-8:-5]+" "+var_folder +" "+var_first_file[-5:-2]+" "\
414 +((lines[-1].split('=')[1])[:-1])[-5:-2]
415
403
416
404
417
405 #Se deshabilita el Tab Parameters y el boton btnGbkp
418 #Se deshabilita el Tab Parameters y el boton btnGbkp
406 self.tabParameters.setEnabled(False)
419 self.tabParameters.setEnabled(False)
407 self.btnGbkp.setEnabled(False)
420 self.btnGbkp.setEnabled(False)
408
421
409
422
410 @pyqtSignature("")
423 @pyqtSignature("")
411 def on_btnStartburn_clicked(self):
424 def on_btnStartburn_clicked(self):
412 """
425 """
413 Slot documentation goes here.
426 Slot documentation goes here.
414 """
427 """
415 sys.stdout = self
428 sys.stdout = self
416 #sys.stderr = self
429 #sys.stderr = self
417 print "stdout_!!!"
430 print "stdout_!!!"
418 var_Rpath=self.txtRpath.text()
431 var_Rpath=self.txtRpath.text()
419 var_Rpath_ppath=var_Rpath+"/ppath"
432 var_Rpath_ppath=var_Rpath+"/ppath"
420 var_Rpath_iso=var_Rpath+"/iso"
433 var_Rpath_iso=var_Rpath+"/iso"
421
434
422 var_label=self.txtElabel.text()
435 var_label=self.txtElabel.text()
423
436
424 file_iso=var_Rpath_iso+'/2.iso'
437 file_iso=var_Rpath_iso+'/2.iso'
425 file_dat=var_Rpath_ppath+'/EW_DRIFTS_1.dat'
438 file_dat=var_Rpath_ppath+'/EW_DRIFTS_1.dat'
426
439
427 var_cmd = 'genisoimage -hide-joliet-trans-tbl -joliet-long -r '
440 var_cmd = 'genisoimage -hide-joliet-trans-tbl -joliet-long -r '
428 var_cmd += ' -A '+var_label+' -V '+var_label
441 var_cmd += ' -A '+var_label+' -V '+var_label
429 var_cmd += ' -graft-points -path-list '+ file_dat+' -o '+file_iso
442 var_cmd += ' -graft-points -path-list '+ file_dat+' -o '+file_iso
430 self.txtInfo.append(var_cmd)
443 self.txtInfo.append(var_cmd)
431
444
432 #var_output=commands.getstatusoutput(str(var_cmd))[1]
445 #var_output=commands.getstatusoutput(str(var_cmd))[1]
433 #self.txtInfo.append(var_output)
446 #self.txtInfo.append(var_output)
434
447
435 #os.system(str(var_cmd))
448 #os.system(str(var_cmd))
436 #p = subprocess.Popen(str('ls /'), shell=True, stdout=self)
449 #p = subprocess.Popen(str('ls /'), shell=True, stdout=self)
437 #os.waitpid(p.pid, 0)
450 #os.waitpid(p.pid, 0)
438 ####self.txtInfo.append(str(p.pid))
451 ####self.txtInfo.append(str(p.pid))
439
452
440
453
441
454
442 @pyqtSignature("")
455 @pyqtSignature("")
443 def on_btnRestart_clicked(self):
456 def on_btnRestart_clicked(self):
444 """
457 """
445 Slot documentation goes here.
458 Slot documentation goes here.
446 """
459 """
447 self.tabParameters.setEnabled(True)
460 self.tabParameters.setEnabled(True)
448 self.btnGbkp.setEnabled(True)
461 self.btnGbkp.setEnabled(True)
449
462
450 @pyqtSignature("")
463 @pyqtSignature("")
451 def on_btnTdevA_clicked(self):
464 def on_btnTdevA_clicked(self):
452 var_dev = str(self.txtDeviceA.text())
465 var_dev = str(self.txtDeviceA.text())
453 var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
466 var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
454 commands.getstatusoutput(var_cmd)
467 commands.getstatusoutput(var_cmd)
455
468
456 @pyqtSignature("")
469 @pyqtSignature("")
457 def on_btnTdevB_clicked(self):
470 def on_btnTdevB_clicked(self):
458 var_dev = str(self.txtDeviceB.text())
471 var_dev = str(self.txtDeviceB.text())
459 var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
472 var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
460 commands.getstatusoutput(var_cmd)
473 commands.getstatusoutput(var_cmd)
461
474
462 @pyqtSignature("")
475 @pyqtSignature("")
463 def on_btnTdevC_clicked(self):
476 def on_btnTdevC_clicked(self):
464 var_dev = str(self.txtDeviceC.text())
477 var_dev = str(self.txtDeviceC.text())
465 var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
478 var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
466 commands.getstatusoutput(var_cmd)
479 commands.getstatusoutput(var_cmd)
467
480
468 @pyqtSignature("")
481 @pyqtSignature("")
469 def on_btnTdevD_clicked(self):
482 def on_btnTdevD_clicked(self):
470 var_dev = str(self.txtDeviceD.text())
483 var_dev = str(self.txtDeviceD.text())
471 var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
484 var_cmd = 'eject ' + var_dev + '; eject -t ' + var_dev
472 commands.getstatusoutput(var_cmd)
485 commands.getstatusoutput(var_cmd)
General Comments 0
You need to be logged in to leave comments. Login now