在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\"')
答案 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\"')