Задать вопрос
@Usdmal
Учу python, работаю юристом

Можете помочь получить примеры вывода команды `tree` в кодировках, отличных от CP866 и UTF-8, для тестирования парсера на Python?

Я разрабатываю утилиту на Python для конвертации вывода команды `tree` (Windows и Linux) в Excel с автоопределением кодировки. Чтобы протестировать обработку кириллицы, иероглифов и спецсимволов в разных кодировках (особенно отличных от моей CP866, где программа точно работает, и от UTF-8), мне не хватает реальных примеров.

Буду очень благодарен, если вы поделитесь результатами выполнения команды `tree`. Подойдёт вывод без параметров или с флагами `/f`, `/a`, `/f /a` (не обязательно все варианты сразу). Это может быть дерево даже директории с какой-нибудь игрой.

Если у вас есть действительно большое дерево каталогов, это будет идеально. Пожалуйста, не вставляйте его в текст ответа, а загрузите на pastebin (например, termbin.com) и оставьте ссылку.

Будет здорово, если для каждого примера вы укажите:
- операционную систему;
- активную кодировку;
- использованные параметры команды `tree`.

Заранее спасибо за помощь!
  • Вопрос задан
  • 403 просмотра
Подписаться 2 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Академия Эдюсон
    Python-разработчик + ИИ
    9 месяцев
    Далее
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Python-разработчик + ИИ
    8 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
opium
@opium
Просто люблю качественно работать
вывод с чужих машин тебе не особо и нужен — сгенерируй эталонное дерево в utf-8, лучше с ASCII-ветвями (`tree /a` в Windows, `tree --charset=ascii` в Linux — так меньше риск что рамка не влезет в целевую кодировку), и перекодируй сам под нужные:

text = open('tree-utf8.txt', encoding='utf-8').read()
for enc in ('cp1251', 'koi8-r', 'cp932', 'gbk', 'big5'):
    try:
        data = text.encode(enc)
    except UnicodeEncodeError as e:
        print(enc, 'не влезло:', e)
        continue
    open(f'tree-{enc}.txt', 'wb').write(data)


получишь воспроизводимые тестовые файлы, не завися от того, кто что пришлёт на pastebin.
Ответ написан
@pfg21
ex-турист
а не проще ли перед tree запускать команду выбора кодепейдж chcp 65001 или chcp 1251 ??
еще помню была какаято команда переводящая язык сообщений консоли виндовс на аглицкий.
удобнейшее средство от всех косяков не умеющего в отличные от аглицкого языка cmd :)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы