使用Python执行Xcopy
我正在尝试用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把你的一些反斜杠当成特殊符号来处理,从而让你感到意外。