使用Python执行Xcopy

4 投票
3 回答
12905 浏览
提问于 2025-04-18 15:57

我正在尝试用Python来让xcopy这个命令工作,以便把文件复制到远程系统。我用的是一个非常简单的测试例子:

import os

src = "C:\<Username>\Desktop\test2.txt"
dst = "C:\Users\<Username>"

print os.system("xcopy %s %s" % (src, dst))

但是当我运行这个的时候,出现了:

Invalid number of parameters
4

直接在命令行运行xcopy是没问题的。有什么想法吗?

谢谢

3 个回答

1

试着在你的字符串前面加上 r。比如 r"C:\<用户名>\Desktop\test2.txt"。问题在于,反斜杠在字符串中被当作特殊字符来处理。

3

除了使用原始字符串字面量之外,建议使用 subprocess 模块,而不是 os.system。这样做的好处是,如果你的参数中有空格,它会自动帮你处理好引号。所以:

import subprocess

src = r'C:\<Username>\Desktop\test2.txt'
dst = r'C:\Users\<Username>'

subprocess.call(['xcopy', src, dst])
3

\t 是一个制表符。建议在处理Windows路径时使用原始字符串:

src = r"C:\<Username>\Desktop\test2.txt"
dst = r"C:\Users\<Username>"

这样可以避免Python把你的一些反斜杠当成特殊符号来处理,从而让你感到意外。

撰写回答