subprocess.CalledProcessError 当 运行 robocopy 从 Python 3 到 Windows 7
subprocess.CalledProcessError When running robocopy from Python 3 on Windows 7
我正在尝试使用 robocopy 和 python 将媒体从一台 windows 机器自动复制到网络上的另一台机器 3.
我几乎尝试了 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
有人有什么建议吗?
您要么不拆分参数(并使用 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']))
我正在尝试使用 robocopy 和 python 将媒体从一台 windows 机器自动复制到网络上的另一台机器 3.
我几乎尝试了 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
有人有什么建议吗?
您要么不拆分参数(并使用 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']))