equal
deleted
inserted
replaced
43 try: |
43 try: |
44 os.rename(src, dst) |
44 os.rename(src, dst) |
45 except: |
45 except: |
46 os.unlink(dst) |
46 os.unlink(dst) |
47 os.rename(src, dst) |
47 os.rename(src, dst) |
|
48 |
|
49 def copytree(src, dst, copyfile): |
|
50 """Copy a directory tree, files are copied using 'copyfile'.""" |
|
51 names = os.listdir(src) |
|
52 os.mkdir(dst) |
|
53 |
|
54 for name in names: |
|
55 srcname = os.path.join(src, name) |
|
56 dstname = os.path.join(dst, name) |
|
57 if os.path.isdir(srcname): |
|
58 copytree(srcname, dstname, copyfile) |
|
59 elif os.path.isfile(srcname): |
|
60 copyfile(srcname, dstname) |
|
61 else: |
|
62 raise IOError("Not a regular file: %r" % srcname) |
48 |
63 |
49 # Platfor specific varients |
64 # Platfor specific varients |
50 if os.name == 'nt': |
65 if os.name == 'nt': |
51 nulldev = 'NUL:' |
66 nulldev = 'NUL:' |
52 |
67 |