将列表传递给子进程调用

时间:2015-05-06 08:22:08

标签: python subprocess call robocopy

我在尝试将列表传递到子进程调用命令时遇到问题。我试图调用windows robocopy函数,传递它应该过滤的文件类型列表。

filter_list = ['*.txt', '*.dat']
call(["robocopy", src, dst, filter_list, "/e"])

因此传递列表本身不起作用robocopy的输出显示它正在尝试查找文件类型“ .txt .dat”,就像整个列表是单个文件类型一样。 / p>

然后我尝试了以下

call(["robocopy", src, dst, ','.join(filter_list), "/e"])

然而,这与我的第一次尝试产生了相同的输出。有谁知道如何传递列表并正确分割?任何帮助都很受欢迎!

1 个答案:

答案 0 :(得分:4)

您应该实际传递列表中的参数:

args = ["robocopy", src, dst]
args.extend(filter_list)
args.append("/e")
call(args)