我尝试读取目录的所有文本文件。以下代码仅适用于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上实现此功能?