【Python】调用subprocess批量执行命令(解决os.system弹出窗口)

✨需求分析

遍历data/val.txt与data/test.txt中的图片名称

从所有train图片中筛选出val test

实现思路:遍历txt后调用DOS命令批量复制图片


✨os.system

详细介绍 点击直达 -> Python官方文档


但是批量调用命令时遇到了问题

笔者这里是每次调用完一条命令后都会在vsc中重新打开.py

(这里可能跟默认文件关联有关 也有的是会反复弹出cmd窗口)

关闭vsc后才会效用下一条命令


✨subprocess.run

run() 函数是在 Python 3.5 被添加的

详细介绍 点击直达 -> Python官方文档


✨代码实现

import os
import subprocess

with open("../ImageSets/val.txt", "r") as f:
    lines = f.readlines()
    tmp = []
    for i in lines:
        tmp.append(i.replace("\n", ".jpg"))
    print(tmp)
    for i in tmp:
        subprocess.run("xcopy " + i + " /D val", stdout=False, shell=False)
        print("[Done]" + " xcopy " + i + " /D val")
        # os.system("xcopy " + i + " /D val")  # 每次调用会弹出窗口

✨参考及引用

https://islet.blog.csdn.net/article/details/84376429

https://docs.python.org/zh-cn/3.8/library/os.html

https://docs.python.org/zh-cn/3.8/library/subprocess.html


⭐转载请注明出处

本文作者:双份浓缩馥芮白

原文链接:https://www.cnblogs.com/Flat-White/p/14732115.html

版权所有,如需转载请注明出处。

posted @ 2021-05-05 17:07  双份浓缩馥芮白  阅读(1005)  评论(0编辑  收藏  举报