使用Python的Xcopy

4
我正在尝试使用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是可以正常工作的。有什么想法吗?
谢谢。

1
Python文档建议使用“subprocess”模块而不是“os.system”。subprocess - Roland Smith
3个回答

3

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

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

这将防止Python将一些反斜杠解释为转义序列,以免让您感到意外。

2
或者只需使用正斜杠; Windows 对它们非常满意。 - kindall

3

除了使用原始字符串字面值外,应该使用subprocess模块代替os.system——如果参数包含空格,它将正确引用您的参数。因此:

import subprocess

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

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

1
尝试在字符串前加上r。例如:r"C:\<Username>\Desktop\test2.txt"。问题在于反斜杠在字符串中被视为特殊字符。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接