我正在尝试使用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:需要字符串或缓冲区,列出找到
非常感谢任何帮助纠正这一点。
答案 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)