【发布时间】:2018-07-02 06:18:33
【问题描述】:
我正在尝试将所有 html 文件 Doctype 打印到 txt 文件中。我没有使用 Python 的经验,所以请多多包涵。 :)
最终脚本应该根据 html 文件中设置的 Doctype 中给出的 html 版本从 html 文件中删除元素。我也尝试在 PHP 中列出文件,并且它在某种程度上有效。我认为 Python 是完成这项任务的更好选择。
下面的脚本是我现在得到的,但我不知道如何编写一个“for each”来递归地获取 arkivet 文件夹中每个 html 文件的 Doctype。我目前只打印文件名和扩展名,我不知道如何获取它的路径,也不知道如何利用 BeautifulSoup 从文件中编辑和获取信息。
import fnmatch
from urllib.request import urlopen as uReq
import os
from bs4 import BeautifulSoup as soup
from bs4 import Doctype
files = ['*.html']
matches = []
for root, dirnames, filenames in os.walk("arkivet"):
for extensions in files:
for filename in fnmatch.filter(filenames, extensions):
matches.append(os.path.join(root, filename))
print(filename)
matches 是一个数组,但我不确定如何在 Python 中正确处理它。我想将文件夹名、带扩展名的文件名和它的文档类型打印到根目录下的文本文件中。
脚本在带有 Python 3.5(也存在 Python 2.x)的本地 Vagrant Debian 服务器上的 CLI 中运行。所有文件和文件夹都存在于服务器公共根目录下名为 arkivet(存档)的文件夹中。
任何帮助表示赞赏!我被困在这里:)
【问题讨论】:
-
从字面上看,没有理由标记“PHP”,因为它与 PHP 完全无关。
-
你能追溯你的全部错误吗?
-
@VikasDamodar 这个脚本没有错误。正如我在文本中描述的那样,它只吐出文件名和扩展名。 :) 只有我不知道怎么做剩下的。
-
所以基本上你想读取一个目录下的所有html文件?
-
当然它只“打印”文件名,这是您打印的唯一内容。文件路径在您的
matches列表中(注意:它是list而不是array- 这些是 Python 中的不同类型)。 wrt/ 你必须解析文件的 html 版本(使用真正的 html 解析器——beautifulsoup 可能是你最好的选择——基于正则表达式的方法并不可靠,或者需要大量调试,所以不要重新发明众所周知的方轮)。
标签: python arrays python-3.x