• Как верно вытащить список всех папок и файлов включенных в папки?

    xenon
    @xenon
    Too drunk to fsck
    У вас как выглядит directory? Это список строк, как я понимаю. А writerows ожидает "список списков строк". (каждый элемент верхнего списка, список из строк, каждая строка в отдельную клетку).
    Вот поэтому он строку и итерирует побуквенно, обрабатывая ее как список.

    попробуйте в directory.append() давать не строку, а список из одного элемента (этой строки) и должно быть счастье.
    Ответ написан
    3 комментария
  • Как верно вытащить список всех папок и файлов включенных в папки?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Я думаю, проблема была в csv writer-е, надо внимательно изучить, как он работает внутри. Мне лень его изучать, в данном случае проще собрать элементы списка через «перевод строки» в одну длинную строку и всё разом записать в файл.
    import os
    
    root_path = "testfolder"
    directory = []
    for root, dirs, files in os.walk(root_path):
        for name in files:
            directory.append(os.path.join(root, name))
    with open('DIR_Geo.csv', 'w', encoding='utf-8') as f:
        f.write('\n'.join(directory))

    Это костыль, но в данном случае, когда мы элементы списка формируем из os, и мы понимаем, что в них не попадут какие-нибудь специальные символы вроде переводов строки, табуляций и т.п., то ничего страшного произойти не должно.
    Ответ написан
    5 комментариев