使用Python遍历目录并在每个命令中执行命令提示符命令

时间:2014-06-18 19:05:53

标签: python

在Windows 7 Pro中,我需要遍历给定位置的目录(在本例中为Z:\),并使用Python在每个目录中执行命令提示符命令。对于os.walk()来说,这似乎应该是直截了当的,但到目前为止我没有尝试过的任何工作 - 我最接近的是让命令无限循环从我的桌面(该脚本是下面)。我需要做什么才能完成这项任务?

import os

for root, dirs, files in os.walk("Z:/"):
    for dir in dirs:
        os.system('cd Z:\\' + dir)
        os.system('git init')
        os.system('git add .')
        os.system('git commit -m \"Initial\"')

1 个答案:

答案 0 :(得分:4)

运行os.system('cd WHEREVER')时,您正在创建一个新的命令shell,它对当前目录有自己的想法。

当shell退出时,父进程不会保留子进程的当前目录,以便后续的os.system()调用在当前目录中看不到任何更改。

执行此操作的正确方法是更改​​子进程继承进程(您的脚本)中的当前目录:

import os

for root, dirs, files in os.walk("Z:/"):
    for dir in dirs:
        os.chdir('Z:\\' + dir)
        os.system('git init')
        os.system('git add .')
        os.system('git commit -m \"Initial\"')