Windows使用subprocess.call()函数

在研究DeblurGan-tf的代码时,运行GOPRO_preprocess.py文件时
subprocess.call(['cp', train_blur[index], os.path.join(args.output_path, 'train/blur/%s'%('_'.join(train_blur[index].split('/')[-3:])))])语句报错系统找不到指定文件。
研究后发现有三个点需要注意:

1. 文件路径使用\\而不是/。虽然/也没有问题,但为了避免疏忽,路径部分全部使用了\\。
2. 'cp'应该替换为'copy'。
3. 函数中应该指定'shell=True'。

最后这句代码被改为:

subprocess.call(['copy', train_blur[index], os.path.join(args.output_path, 'train\\blur\\%s'%('_'.join(train_blur[index].split('\\')[-3:])))], shell=True)

参考资料:
用Python复制文件的9个方法


版权声明:本文为u012428169原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。