[Solucionado]¿Como cortar un cacho del final de un archivo?

Iniciado por sr_corsario, 27 Septiembre 2009, 18:34 PM

0 Miembros y 2 Visitantes están viendo este tema.

sr_corsario

#10
Muchiiiisimas graaacias!!!!!!

Otra petición... ¿Hay alguna manera para que directamente busque el archivo en el directorio donde ejecuto el archivo?

Gracias!

Edit:O asignar uno que siempre sea el mismo...
Supongo que sería cambiando

direc = input('Ingrese Directorio: ')

por

direc = os.chdir(path)


pero claro... estoy en las m¡smas ... hay que definir el "path" ...

43H4FH44H45H4CH49H56H45H

Asi podria ser:

Código (python) [Seleccionar]
import os
def cortar(nomOriginal, nomNuevo, tamArchivo, tamCortar):
    with open(nomOriginal, 'r+b') as file1:
        f1 = file1.read (tamArchivo-tamCortar)
        file1.close()
    with open(nomNuevo, 'w+b') as file2:
        file2.write(f1)
        file2.close()
        print("Cortado Hecho y guardado en: " + nomNuevo)

direc = os.getcwd()
dirList = os.listdir(direc)
for fname in dirList:
    if(fname.upper().endswith('.JPG')):
        if(os.path.isfile(direc + fname)== True):
            if(os.path.exists(direc + fname + '.bak')== False):
                print ('Nombre de archivo: '+ fname)
                leno = os.path.getsize(direc + fname)
                print ("inciando cortado en: " + direc + fname)
                os.rename(direc + fname,direc + fname + '.bak')
                cortar(direc + fname + '.bak', direc + fname, leno, 20000)
            else:
                print ('Archivo: ' + direc + fname + ' ya fue cortado')

-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W

sr_corsario


Novlucker

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

43H4FH44H45H4CH49H56H45H

Hazle click derecho al archivo y edit IDLE para correrlo con F5 y ahi en el idle te saldra los errores o similar.

-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W

sr_corsario

#15
Buenas.

Me sale:

   
IDLE 3.0      ==== No Subprocess ====
>>>
>>>



Por lo que entiendo que no encuentra ningún archivo en el directorio donde lo ejecuto.

¿Alguna idea?

Edit:
Para ver realmente si estaba en el directorio que debería, le he metido esto:

for fname in dirList:
    print (fname)

 
Y si... es el directorio que toca... por lo que no entiendo porqué no encuentra el archivo! :(

¿Puedo especificar un nombre de archivo en concreto? (game.bin)

if(fname.upper().endswith('.bin')):


Gracias

43H4FH44H45H4CH49H56H45H

if(fname.upper().endswith('.bin')):

seria:

if(fname.upper().endswith('.BIN')):

Por eso se usa "upper()" y evitamos combinaciones entre may... y min...

-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W

sr_corsario

#17
Me sigue sin responder nada.


import os
def cortar(nomOriginal, nomNuevo, tamArchivo, tamCortar):
   with open(nomOriginal, 'r+b') as file1:
       f1 = file1.read (tamArchivo-tamCortar)
       file1.close()
   with open(nomNuevo, 'w+b') as file2:
       file2.write(f1)
       file2.close()
       print("Cortado Hecho y guardado en: " + nomNuevo)

direc = os.getcwd()
dirList = os.listdir(direc)
for fname in dirList:
   if(fname.upper().endswith('.BIN')):
       if(os.path.isfile(direc + fname)== True):
           if(os.path.exists(direc + fname + '.bak')== False):
               print ('Nombre de archivo: '+ fname)
               leno = os.path.getsize(direc + fname)
               print ("inciando cortado en: " + direc + fname)
               os.rename(direc + fname,direc + fname + '.bak')
               cortar(direc + fname + '.bak', direc + fname, leno, 131072)
           else:
               print ('Archivo: ' + direc + fname + ' ya fue cortado')



Perdón por mi torpeza :(

Bueno... mas o menos ya se donde está el error.  Es algo sobre la ruta del directorio. Creo que le falta "\" en el path del archivo, ya que si toqueteo el programa me responde en algún punto "F:\pruebagame.bin" cuando tendría que ser "F:\prueba\game.bin"  Lo que pasa es que yo no se como solucionarlo...

Gracias

43H4FH44H45H4CH49H56H45H

Con esto deberia funcionar:

Código (python) [Seleccionar]
import os
def cortar(nomOriginal, nomNuevo, tamArchivo, tamCortar):
    with open(nomOriginal, 'r+b') as file1:
        f1 = file1.read (tamArchivo-tamCortar)
        file1.close()
    with open(nomNuevo, 'w+b') as file2:
        file2.write(f1)
        file2.close()
        print("Cortado Hecho y guardado en: " + nomNuevo)

direc = os.getcwd() + '\\'
dirList = os.listdir(direc)
for fname in dirList:
    if(fname.upper().endswith('.BIN')):       
        if(os.path.isfile(direc + fname)== True):
            if(os.path.exists(direc + fname + '.bak')== False):
                print ('Nombre de archivo: '+ fname)
                leno = os.path.getsize(direc + fname)
                print ("inciando cortado en: " + direc + fname)
                os.rename(direc + fname,direc + fname + '.bak')
                cortar(direc + fname + '.bak', direc + fname, leno, 131072)
            else:
                print ('Archivo: ' + direc + fname + ' ya fue cortado')

-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W

sr_corsario

GRRrrAAAaCiassss!!! Ahora si que va de PM!!!

Finalmente podré seguir con mi proyecto!!! ;)

Saludos