python 3.x - Cleaning up the Garbage Output File -


i pretty new python , tried read jpg file , write simple practice. file not huge, 142 kbytes when used buffer chunks of 50000 bytes read , write new.jpg file, gave limited space error , ate of remaining 4gb of space in c:\ drive on desktop , never released memory. how can see , free memory used python. here code:

def main():      buffersize = 50000                       infile = open('olives.jpg', 'rb')        outfile = open('new.jpg', 'wb')     buffer = infile.read(buffersize)     while(len(buffer)):         outfile.write(buffer)         print('.', end = '')         infile.read(buffersize)     print()     print('done')  if __name__ == "__main__": main() 

please let me know how can free memory c:\ drive short in memory.

thank you!

in loop, never change buffer. need assign read result, or keep writing same original buffer contents on , over, loop never ends. change final line of while loop:

while(len(buffer)):     outfile.write(buffer)     print('.', end = '')     infile.read(buffersize) # <-- not assigning result 

to:

    buffer = infile.read(buffersize) 

also, style points, change while(len(buffer)): while buffer:; bytes objects (like sequences) truthy when non-zero length, , falsy when zero-length (and python doesn't require parens conditional statements unless they're needed grouping tests).

as "freeing memory" (meaning "cleaning garbage output file"), delete it. @ command line, can visit working directory ran script in , run del new.jpg, or navigate there same way in file browser. if have no idea file is, rerunning script after fixing infinite loop problem truncate original file before writing (because mode included w), solve problem.


Comments

Popular posts from this blog

how to insert data php javascript mysql with multiple array session 2 -

multithreading - Exception in Application constructor -

windows - CertCreateCertificateContext returns CRYPT_E_ASN1_BADTAG / 8009310b -