Personal tools
You are here: Home diverse filer til download mm. cpfile.py
Document Actions

cpfile.py

by Lars Bauer Jørgensen last modified 2009-10-21 10:53

? Jeg sidder og prøver at lave et program som kan kopiere filer, men mens jeg sidder og afprøver det finder jeg ud af at programmet ikke kan kopiere filer over 1 mb eller i hvert fald der omkring. Jeg forstår ikke hvorfor da jeg jo har sat bufferen til næsten 2mb. Svar 1. kopier med lille buffer eller 2. brug operativsystemets egen cp cmd.

Click here to get the file

Size 1.3 kB - File type text/python-source

File contents

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
#
"""
USAGE: cpfile.py <source> <dest>
"""
# ? Jeg sidder og prøver at lave et program som kan kopiere filer, men mens jeg 
# sidder og afprøver det finder jeg ud af at programmet ikke kan kopiere filer 
# over 1 mb eller i hvert fald der omkring. Jeg forstår ikke hvorfor da jeg jo 
# har sat bufferen til næsten 2mb. 

# Svar 1. kopier med lille buffer eller 2. brug operativsystemets egen cp cmd.

def os_cp(src, dest):
    import os
    os.system("cp %(src)s %(dest)s" % vars())
    
def cp(kilde, maal, buf_size=1024):
    """Kopierer kilde til maal
    Der bruges en buffer på buf_size bytes så kopieringen er økonomisk hvad angår ram.
    """
    k = open(kilde, "rb")
    m =  open(maal, "w")

    buf = k.read(buf_size)
    while buf:
        m.write(buf)
        buf = k.read(buf_size)
        
if __name__=="__main__":        
    import sys
    import datetime
    import time

    try:
        kilde = sys.argv[1]
        maal = sys.argv[2]
    except IndexError, e:
        sys.stderr.write( "Wrong arguments?\n")
        sys.stderr.write(__doc__)
        sys.exit(1)

    start = datetime.datetime.now()
    cp(kilde, maal, buf_size=1000)
    print "Elapsed", datetime.datetime.now() - start

    start = datetime.datetime.now()
    os_cp(kilde, maal)
    print "Elapsed", datetime.datetime.now() - start
« May 2012 »
Su Mo Tu We Th Fr Sa
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Chat Rooms
CMS ?

Sparer man tid og penge på Plone

ja
nej
ved ikke

Dyrk motion

Trim ballerup

 

Powered by Plone, the Open Source Content Management System