从一个位置复制到另一个位置

时间:2013-08-01 00:07:03

标签: python

我正在尝试从一个位置复制到另一个位置,如下所示并遇到以下错误,是否有人可以提供有关如何克服此问题的输入?

import argparse
import shutil, errno

def copystuff(src, dst):
    try:
        shutil.copytree(src, dst)
    except OSError as exc: # python >2.5
        if exc.errno == errno.ENOTDIR:
            shutil.copy(src, dst)
        else: raise


def main ():
    source= "\\Terminal\workspace\username\nfc\AU_LINUX_ANDROID_JB_3.2_RB2.04.03.00.129.005"
    destination= "\\fosters\loc\LA\Build"
    copy_list=['\out\target\product\msm8226\obj\KERNEL_OBJ\vmlinux']
    for item in copy_list:
        src = source + item
        dest = destination + item
        copystuff(src,dest)

if __name__ == '__main__':

错误: -

WindowsError: [Error 3] The system cannot find the path specified: '\\Terminal\workspace\username\nfc\AU_LINUX_ANDROID_JB_3.2_RB2.04.03.00.129.005\out\\target\\product\\msm8226\\obj\\KERNEL_OBJ\\vmlinux/*.*'

3 个答案:

答案 0 :(得分:1)

在处理Windows路径时,您需要使用原始字符串(或转义斜杠):

source= r"\\Terminal\workspace\username\nfc\AU_LINUX_ANDROID_JB_3.2_RB2.04.03.00.129.005\\"

否则,\nfc将被视为<newline>fc

答案 1 :(得分:0)

查看生成的路径,显示在错误消息中。我想你忘记了源和项目之间的反斜杠。 ;)

只需在sourcedestination的末尾添加反斜杠,或在copy_list中的项目开头添加一个反斜杠。

答案 2 :(得分:0)

我之前从未使用过Shutil但是你可以使用Os

    import os

    def copystuff(src, dst)
        os.system("cp " + src + " " + dst)

    copystuff("/example/directory/file.txt", "/other/directory")

&#34; os.system()&#34;基本上运行终端命令。对于Windows,请替换&#34; cp&#34;用&#34;复制&#34;因为命令不同。