02. april 2008 - 13:44Der er
4 kommentarer og 1 løsning
Få navne på alle mapper og undermapper
Hej.. Ja, for at gøre det kort.. Jeg vil gerne have alle navnene(inklusiv sti) på de mapper og undermapper jeg har i det angivende sted..
Så, jeg vælger at starte fra desktop, og deri har jeg en mappe med en mappe med en mappe osv..
Så vil jeg ha stierne på alle mapperne ned i en arrayliste..
Jeg har forsøgt mig med noget .getdirectories, men den medtager ikke undermapper, og så skal jeg til at lave en ny .getdirectories for hver mappe den finder, og dér bliver det sku lige lidt for uoverskueligt for mig.. og håber der var en nemmere måde at udføre dette på..
from os import stat from os import listdir from os import popen from stat import S_ISDIR from time import ctime
from xml.sax.saxutils import escape
XML_ENC = "ISO-8859-1"
""""""""""""""""""""""""""""""""""""""""""""""""""" Class: Index(startingDir, outputFile) """"""""""""""""""""""""""""""""""""""""""""""""""" class Index: """ This class indexes files and builds a resultant XML document. """ def __init__(self, startingDir, outputFile): """ init: sets output file """ self.outputFile = outputFile self.startingDir = startingDir
def indexDirectoryFiles(self, dir): """Index a directory structure and creates an XML output file.""" # prepare output XML file self.__fd = open(self.outputFile, "w") self.__fd.write('<?xml version="1.0" encoding="' + XML_ENC + '"?>\n') self.__fd.write("<IndexedFiles>\n")
# do actual indexing self.__indexDir(dir)
# close XML file self.__fd.write("</IndexedFiles>\n") self.__fd.close()
def __indexDir(self, dir): """Recursive function to do the actual indexing.""" # Create an indexFile for each regular file, # and call the function again for each directory files = listdir(dir) for file in files: fullname = os.path.join(dir, file) st_values = stat(fullname)
# check if its a directory if S_ISDIR(st_values[0]): print file
""""""""""""""""""""""""""""""""""""""""""""""""""" Class: IndexFile(filename, stat-tuple) """"""""""""""""""""""""""""""""""""""""""""""""""" class IndexFile: """ Simple file representation object with XML """ def __init__(self, filename, st_vals): """Extract properties from supplied stat object.""" self.filename = filename self.uid = st_vals[4] self.gid = st_vals[5] self.size = st_vals[6] self.accessed = ctime(st_vals[7]) self.modified = ctime(st_vals[8]) self.created = ctime(st_vals[9])
# try for filename extension self.extension = os.path.splitext(filename)[1]
# check contents using file command on linux if os.name == "posix": # Open a process to check file # contents fd = popen("file \"" + filename + "\"") self.contents = fd.readline().rstrip() fd.close() else: # No content information self.contents = self.extension
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.