Открытые файлы, где имя файла может содержать специальные символы на окнах - PullRequest
0 голосов
/ 18 апреля 2019

Я пытаюсь прочитать все текстовые файлы каталога.Приведенный ниже код работает только на Linux.Но у меня проблемы с чтением файлов со специальными символами, например: unsere-fotowand.html_tx_yag_pi1%5Bc142%5D%5BalbumUid%5D=1&tx_yag_pi1%5Bc142%5D%5BgalleryUid%5D=1&tx_yag_pi1%5Baction%5D=index&tx_yag_pi1%5Bcontroller%5D=Gallery&cHash=de647de667336c05d26cce3a7cb3a28a.txt в Windows.Я пробовал такие вещи, как filename.encode().decode('utf8'), но это не помогает.

import os
import sys

for r, d, f in os.walk(path):
    for file in f:
        if file.endswith('.txt'):
            filename = os.path.join(r, file)
            print(f'process file {filename}')

            # throws file not found exception if tilename containts & or %
            with open(filename, 'r', encoding="utf-8") as txtfile:
                text = txtfile.read()

Как я могу заставить это работать на Linux и Windows?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...