Supondo que você tenha uma estrutura de árvore de diretórios consistente, o script python apresentado abaixo irá percorrer a árvore de diretórios e gerar o conteúdo csv para o fluxo stdout (use >
operator na linha de comando para gerar o conteúdo em um novo arquivo, como em ./dir_tree_csv.py > output_file.csv
). Ele deve ser colocado no diretório Wall Arts Product Images
e executado a partir daí.
#!/usr/bin/env python
from __future__ import print_function
import os,sys
def get_all_files(treeroot):
file_list = []
for dir,subdirs,files in os.walk(treeroot):
for f in files:
if os.path.basename(__file__) in f: continue
file_list.append(os.path.join(dir,f))
return file_list
def main():
top_dir="."
if len(sys.argv) == 2: top_dir=sys.argv[1]
files = get_all_files(top_dir)
print("Image name,category,subcategory,type\n")
for f in files:
fields = f.split('/')
fields.reverse()
fields[2],fields[3] = fields[3],fields[2]
print(",".join(fields[1:-1]))
if __name__ == '__main__' : main()
Execução de teste:
# Replicated directory structure with only two of the files for simplicity
$ tree
.
├── dir_tree_csv.py
├── framed-posters
│ └── landscape
│ └── animals-and-birds
│ └── Bighorn
│ └── Bighorn.jpg
└── posters
└── landscape
└── Automobiles
└── Best-Deisgner-Jack-Daniel-Chopper
└── Best-Deisgner-Jack-Daniel-Chopper.jpg
8 directories, 3 files
$ ./dir_tree_csv.py
Image name,category,subcategory,type
Best-Deisgner-Jack-Daniel-Chopper,landscape,Automobiles,posters
Bighorn,landscape,animals-and-birds,framed-posters