在Windows上打开文件名可能包含特殊字符的文件

时间:2019-04-18 07:54:26

标签: python-3.x windows file

我尝试读取目录的所有文本文件。以下代码仅适用于linux。但是我在读取带有特殊字符的文件时遇到问题,例如:Windows上的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。我尝试过类似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上实现此功能?

0 个答案:

没有答案