0

以下のようにある場所から別の場所にコピーしようとすると、次のエラーが発生します。これを克服する方法について誰かが入力できますか?

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/*.*'
4

3 に答える 3

1

Windows パスを扱うときは、生の文字列を使用する (またはスラッシュをエスケープする) 必要があります。

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

それ以外の場合\nfcは として扱われ<newline>fcます。

于 2013-08-01T00:17:24.940 に答える
0

Shutil を使用したことはありませんが、Os を使用できます

    import os

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

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

「os.system()」は基本的に端末コマンドを実行します。Windows の場合、コマンドが異なるため、「cp」を「copy」に置き換えます。

于 2014-06-23T17:47:17.913 に答える
0

エラー メッセージに示されている、生成されたパスを確認します。ソースとアイテムの間のバックスラッシュを忘れたと思います。;)

sourceとの最後にバックスラッシュを追加するdestinationか、 の項目の先頭にバックスラッシュを追加しますcopy_list

于 2013-08-01T00:12:35.743 に答える