有坑的地方: 如果代码写成这样: [( os.path.abspath(x)) for x in os.listdir(startPath) ] 此代码只能用于当前目录下,listdir列出的都只是文件名,然后abspath(x)对着一个文件名找绝对路径,肯定不行,电脑里同名的文件那么多,你要找哪个? 同样,isfile()也不同用于一个文件名,所以这些函数都只是对当前目录下的操作 import os,sys #编写一个程序,能在某目录以及其所有子目录下查找文件名包含指定字符串的文件,并打印出相
#coding=utf-8# -*- coding: utf-8 -*-import osimport sysreload(sys) sys.setdefaultencoding('utf-8') def GetFileList(dir, fileList): newDir = dir if os.path.isfile(dir): fileList.append(dir.decode('gbk')) elif os.path.isdir(dir): for s in os.listdir(di
#方法1:使用os.listdir import os for filename in os.listdir(r'c:\\windows'): print filename #方法2:使用glob模块,可以设置文件过滤 import glob for filename in glob.glob(r'c:\\windows\\*.exe'): print filename #方法3:通过os.path.walk递归遍历,可以访问子文件夹 import os.path def processDire
参考方法: import os path = r'C:\Users\Administrator\Desktop\file' for filename in os.listdir(path): print(os.path.join(path,filename))os.listdir() #只遍历当前目录os.walk() #遍历当前目录下以及各个子目录
#自定义函数: import ospath="D:\\Temp_del\\a"def gci (path): """this is a statement""" parents = os.listdir(path) for parent in parents: child = os.path.join(path,parent) #print(child) if os.path.isdir(child): gci(child)
获取文件 import os def sub_dirs(rdir): li = os.listdir(rdir) return li def main(rdir): content = sub_dirs(rdir) for i in content: i = os.path.join(rdir,i) if os.path.isdir(i): main(i) else: print(i) main('/home/tvrecord') 定时删除目录下时间大于10天的文件 #!/usr/bin/env