我正在尝试使用robocopy和python 3在网络上将媒体从一台Windows机器机器人复制到另一台机器。
我已尝试过subprocess
和robocopy
的所有组合,但我仍然遇到错误。
这是我最近的尝试:
print(subprocess.check_output(["robocopy", "\\172.21.81.23\c\media\\ \\172.21.81.10\c\media\videos\\"], shell=True))
我不确定它是反斜杠,还是什么,但我总是得到以下回复:
Traceback (most recent call last):
File "",line 7, in tableChange
File "C:\Program Files line 586, in check_output
raise CalledProcessError(retcode, process.args, output=output)
subprocess.CalledProcessError: Command '['robocopy', '\\172.21.81.23\\c\\media\\cmsupload\\ \\172.21.81.10\\c\\media\\videos\\']' returned non-zero exit status 16
有人有任何建议吗?
答案 0 :(得分:1)
您要么不拆分参数(并使用shell=True
)或将它们完全拆分(并且不使用shell=True
),则不能仅从参数中拆分命令。此外,对于Windows路径,您希望使用原始字符串以避免偶然在路径中处理ASCII转义的问题(以r
为前缀,例如r'\\foo\bar'
,并且不包括尾部斜杠或事情变得很奇怪)所以你可能会这样做:
print(subprocess.check_output(['robocopy', r'\\172.21.81.23\c\media', r'\\172.21.81.10\c\media\videos']))