gpt4 book ai didi

python - 在 Python 上解码 HTML 实体

转载 作者:行者123 更新时间:2023-11-30 23:10:22 25 4
gpt4 key购买 nike

我有一个文件,其中包含如下几行:

StatsLearning_Lect1_2a_111213_v2_%5B2wLfFB_6SKI%5D_%5Btag22%5D.mp4

关于这一行,我在磁盘上有一些文件,但以解码形式保存:

StatsLearning_Lect1_2a_111213_v2_[2wLfFB_6SKI]_[tag22].mp4

我需要从第一个文件列表中获取文件名,从第二个文件中获取正确的文件名,并将文件名更改为第二个名称。为了这个目标,我需要从文件名解码 html 实体,所以我做了这样的事情:

import os
from html.parser import HTMLParser

fpListDwn = open('listDwn', 'r')

for lineNumberOnList, fileName in enumerate(fpListDwn):
print(HTMLParser().unescape(fileName))

但是这个 Action 对run没有任何影响,有的run的结果是:

meysampg@freedom:~/Downloads/Practical Machine Learning$ python3 changeName.py
StatsLearning_Lect1_2a_111213_v2_%5B2wLfFB_6SKI%5D_%5Btag22%5D.mp4

StatsLearning_Lect1_2b_111213_v2_%5BLvaTokhYnDw%5D_%5Btag22%5D.mp4

StatsLearning_Lect3_4a_110613_%5BWjyuiK5taS8%5D_%5Btag22%5D.mp4

StatsLearning_Lect3_4b_110613_%5BUvxHOkYQl8g%5D_%5Btag22%5D.mp4

StatsLearning_Lect3_4c_110613_%5BVusKAosxxyk%5D_%5Btag22%5D.mp4

我该如何解决这个问题?

最佳答案

我想你应该使用 urllib.parse 而不是 html.parser

>>> f="StatsLearning_Lect1_2a_111213_v2_%5B2wLfFB_6SKI%5D_%5Btag22%5D.mp4"
>>> import urllib.parse as parse
>>> f
'StatsLearning_Lect1_2a_111213_v2_%5B2wLfFB_6SKI%5D_%5Btag22%5D.mp4'
>>> parse.unquote(f)
'StatsLearning_Lect1_2a_111213_v2_[2wLfFB_6SKI]_[tag22].mp4'

所以你的脚本应该如下所示:

import os
import urllib.parse as parse

fpListDwn = open('listDwn', 'r')

for lineNumberOnList, fileName in enumerate(fpListDwn):
print(parse.unquote(fileName))

关于python - 在 Python 上解码 HTML 实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30724186/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com