mein Problem ist, dass ein
Code: Alles auswählen
FILE.seek(offset)
buffer = FILE.read()
Vielleicht mache ich einen erheblichen Denkfehler?
Code: Alles auswählen
#!/usr/bin/env python
from time import sleep
def split_file(file="C:/calc.exe",bytes=10000,zfill=10): # generate files each $bytes bytes smaller
try:
FILE = open(file,"r",100000000)
except all:
print "Could not open "+file+" for reading!"
exit
offset = 0
while FILE:
FILE.seek(offset)
print "Set to offset: " + str(offset)
buffer = FILE.read()
print "Bufferlen: "+ str(len(buffer))
FILE.seek(offset) # seek again because FILE.read() sets the cursor to EOF
if len(buffer) == 0: # EOF reached
quit()
nfilename = file+str(offset).zfill(zfill) # gen filename; fill with zeros
try:
NFILE = open(nfilename,"w",0)
print nfilename + " created!\n"
except all:
print nfilename + " could not be created!"
NFILE.write(buffer) # write all stuff to the new (smaller) file
NFILE.close()
offset = offset + bytes # gen new file cursor position
FILE.close()
def main():
split_file()
if __name__ == '__main__':
main()
Liebe Grüße
Keks
EDIT:
Die Ausgabe des Scriptes. Ich erwarte eigentlich dass die Bufferlen immer um $bytes kleiner wird, was sie offensichtlich nicht macht!:
Code: Alles auswählen
Set to offset: 0
Bufferlen: 1468
C:/calc.exe0000000000 created!
Set to offset: 10000
Bufferlen: 3762
C:/calc.exe0000010000 created!
Set to offset: 20000
Bufferlen: 1831
C:/calc.exe0000020000 created!
Set to offset: 30000
Bufferlen: 903
C:/calc.exe0000030000 created!
Set to offset: 40000
Bufferlen: 3171
C:/calc.exe0000040000 created!
Set to offset: 50000
Bufferlen: 9101
C:/calc.exe0000050000 created!
Set to offset: 60000
Bufferlen: 2247
C:/calc.exe0000060000 created!
Set to offset: 70000
Bufferlen: 1610
C:/calc.exe0000070000 created!
Set to offset: 80000
Bufferlen: 8923
C:/calc.exe0000080000 created!
Set to offset: 90000
Bufferlen: 376
C:/calc.exe0000090000 created!
Set to offset: 100000
Bufferlen: 14688
C:/calc.exe0000100000 created!
Set to offset: 110000
Bufferlen: 4688
C:/calc.exe0000110000 created!
Set to offset: 120000
Bufferlen: 0 80000
Bufferlen