Mine værktøjer
Du er her: Forside Python program eksempler. cpfile.py

cpfile.py

Tilbage

Hent filen

Licens GPL

? 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.

#!/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


« august 2018 »
søn man tir ons tor fre lør
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
Dyrk motion

Trim ballerup

 

Powered by Plone, the Open Source Content Management System