Нужна помощь в получении вывода для l oop в Excel / CSV с помощью OS.WALK - PullRequest
0 голосов
/ 22 января 2020

Нужна помощь в получении распечатки в файл CSV / Excel.

Спасибо за помощь!

import pandas as pd
import os


for root, dirs, files in os.walk("C:/"):
    for file in files:
        if file.endswith(".xlsx"):
             print(os.path.join(root, file))

#Need to print the results of this search into an excel/csv File.

Ответы [ 2 ]

1 голос
/ 22 января 2020

Одна из возможностей - добавить строки в список, а затем создать из него фрейм данных и записать его в файл. Не уверен, что это то, что вы ищете.

import pandas as pd
import os

l = []

for root, dirs, files in os.walk(r"C:\"):
    for file in files:
        if file.endswith(".xlsx"):
             l.append(os.path.join(root, file))

pd.DataFrame(l).to_excel(r"C:\Users\______\Desktop\filelist.xlsx", index=False)

Если вам нужен CSV-файл, используйте pandas.to_csv(...) вместо.

0 голосов
/ 22 января 2020

как насчет этого:

мы можем рекурсивно выполнить поиск в вашем каталоге всех исключений и распечатать результаты во фрейме данных,

from pathlib import Path
import pandas as pd

excels = [f for f in Path(r"C:/").rglob('*.xlsx')] # might take a while.
# remove r if you're not on windows.


name = [f.stem for f in excels]
absoloute_path = [f.absolute() for f in excels]
parent = [f.parent for f in excels]
home = [f.home() for f in excels]
parents = {k.stem:'-->'.join([str(i) for i in k.parents][::-1]) for k in excels}

df = pd.DataFrame({'name' : name,
            'abs' : absoloute_path,
             'parent' : parent,
             'home' : home})


final = pd.concat(
    [
        df.set_index("name"),
        pd.DataFrame.from_dict(parents, orient="index", columns=["parents"]),
    ],
    axis=1,
)

Final будет фреймом данных с именем файла, Абсолютный путь, родитель, дом и родительская структура, помеченные C:/ -- > C:/foo ---> C:/foo/bar

, вы можете затем экспортировать это в Excel, используя final.to_excel

...