将内容从本地文件夹复制到python中的远程文件夹

时间:2013-11-27 16:07:02

标签: python file copy remote-server

我正在尝试使用python将文件从本地文件夹复制到远程Windows共享。因此,主要要求是将文件从源文件夹(不断变化)移动到远程共享:

不确定我做错了什么,但以下是我到目前为止所尝试的内容:

# Move the archive file to DVD Burner Box
 destPath = '\\\\10.10.10.10\\DestFolder\\'
 destFolder = destPath + ('%s_%s\\') %(id1,id2)
 srcArchFolderPath = '.\\prepared\\%s_%s\\' %(id1,id2)
 srcArchFiles = os.listdir(srcArchFolderPath)

try:
    os.makedirs(destFolder)
except OSError:
    pass

shutil.copytree (srcArchFiles,destFolder,ignore=None)

sourceFolderPath会在每次运行时使用不同的输入不断更改。

例如:它可以是。\ prepared \ 1_2或。\ prepared \ 2_3,它将在每个脚本运行时不断变化。

如果我打印srcArchFiles,它会成功显示srcArchFolderPath中存在的文件夹列表。 os.makedirs(destFolder)也会在远程共享位置成功创建一个文件夹。但文件副本失败了,不知道为什么它失败了,我相信我没有用shutil做正确的事情。

以下是我看到的错误: 在copytree中的文件“C:\ Python26 \ lib \ shutil.py”,第140行 names = os.listdir(src) TypeError:强制转换为Unicode:需要字符串或缓冲区,列出找到

非常感谢任何帮助纠正这一点。

2 个答案:

答案 0 :(得分:0)

srcArchFiles是一个文件夹列表。 shutil.copytree需要一个文件夹作为第一个参数。

您必须使用循环来复制每个文件夹。

for foldername in srcArchFiles:
    shutil.copytree (foldername, destFolder, ignore=None)

答案 1 :(得分:0)

我在这里找到了一个很好的解决方案:Execute remote commands on windows like psexec (Python recipe)