Программа Python для перемещения каталогов и чтения информации о файле

Я только начинаю с Python, но уже нашел его намного более продуктивным, чем Bash shell scripting.

Я пытаюсь написать Python script, который будет перемещаться по каждому каталогу, который ведёт из каталога, в который я запускаю script, и для каждого найденного файла загружает экземпляр этого класса:

class FileInfo:

    def __init__(self, filename, filepath):
        self.filename = filename
        self.filepath = filepath

Атрибут filepath будет полным абсолютным путем от root (/). Здесь макет псевдокода для того, что я хотел бы сделать главной программе:

from (current directory):

    for each file in this directory, 
    create an instance of FileInfo and load the file name and path

    switch to a nested directory, or if there is none, back out of this directory

Я читал о os.walk() и ok.path.walk(), но мне бы хотелось, чтобы некоторые советы о том, какой самый простой способ реализовать это в Python. Спасибо заранее.

Ответы

Ответ 1

Я бы использовал os.walk следующее:

def getInfos(currentDir):
    infos = []
    for root, dirs, files in os.walk(currentDir): # Walk directory tree
        for f in files:
            infos.append(FileInfo(f,root))
    return infos

Ответ 2

Try

info = []
for path, dirs, files in os.walk("."):
    info.extend(FileInfo(filename, path) for filename in files)

или

info = [FileInfo(filename, path)
        for path, dirs, files in os.walk(".")
        for filename in files]

чтобы получить список из одного экземпляра FileInfo для каждого файла.

Ответ 3

Попробуйте

  

import os

         

для элемента в os.walk( ".", "*" ):

  
     print item