0

在我正在制作的一个小型 wxPython 程序中,我有一个 for 循环,它获取文件列表中的项目并使用 cp copy 复制它们。一切都很好,并且可以在路径中没有空格的源上工作。但是,当引入源时,cp 函数找不到我的源。这是我的代码:

if f_name in selectedsecondcource:
    self.counter += 1
    self.toPrint = self.counterText + str(self.counter) + "/" + str(len(selectedList))
    self.oncopy.SetLabel(self.toPrint)
    src_abs_path = os.path.join(r, file)
    src_relative_path = os.path.relpath(src_abs_path, self.twoDirFilename)
    dst_abs_path = os.path.join(self.DirDest, src_relative_path)
    dst_dir = os.path.dirname(dst_abs_path)
    if not os.path.exists(dst_dir):
        os.makedirs(dst_dir)
    ret = os.system('cp -fr %s %s' % (src_abs_path, dst_abs_path))

任何帮助表示赞赏。虽然这是我的第一个 Python 程序,但我对 Python 的理解比 thisos.system('cp... stuff.

总结一下:如何在目录名称中有空格的源上进行这项工作?

谢谢加文

4

1 回答 1

0

正常情况下,如果文件名用空格分隔,则该命令将不起作用。

尝试使用引号:

ret = os.system('cp -fr "%s" "%s"' % (src_abs_path, dst_abs_path))

但这更好:http ://docs.python.org/2/library/shutil.html#shutil.copy

于 2013-05-07T16:21:35.583 回答