有没有办法让python进入子目录和文件夹的第二个子目录并删除某个文件?我有一个目录,在其中20个其他子目录,每个子目录都有自己的子目录,我想要删除某个文件。我知道我可以对每个人的路径进行硬编码,但有更简单的方法吗?
import os, glob
for filename in glob.glob("C:\sshconnect.py"):
os.remove(filename)
编辑:我想要它,所以我要说"C:\Stackoverflow\sshconnect.py"
& "C:\Testing\Test1\sshconnect.py"
& "C:\Test2\sshconnect.py"
,它应该通过所有这些并删除所有文件夹中的sshconnect.py
。
答案 0 :(得分:2)
你几乎就在那里:glob
返回扩展文件路径的列表。只需迭代它们并删除文件。
由于你有两个级别的文件,你可以这样做:
import os, glob
for filename in glob.glob(r"C:\*\sshconnect.py")+glob.glob(r"C:\*\*\sshconnect.py"):
try:
os.remove(filename)
except FileNotFoundError as e:
print(str(e))
(注意文件受保护时的异常处理:脚本继续)
或者如果您想要任何深度:
for root,dirs,files in os.walk(r"C:\\"):
for f in files:
if f=="sshconnect.py":
try:
os.remove(os.path.join(root,f))
except FileNotFoundError as e:
print(str(e))
对于像2.5这样的旧版python,请写except FileNotFoundError, e: