【问题标题】:How can I find where files are used as links in html pages?如何找到文件在 html 页面中用作链接的位置?
【发布时间】:2016-11-08 08:26:03
【问题描述】:

我有一个静态网站,其中旧页面的版本仍存储在根目录中。我想找到这些页面并查看它们是否在根文件的某个链接中使用。
所以我使用powershell的命令ls -R -Name列出了根目录中的所有文件并将其存储在文件'filelist.txt'中,现在我有类似的东西:

directory1
directory2
5s.htm
5s.html
5s_introduction.htm
...
images\icons
images\icons\linkedin.png
images\icons\project-slider-arrow-left.png
images\icons\project-slider-arrow-right.png

我现在想看看这些文件的使用位置,所以我想我可以在 python 中使用一个简单的脚本(因为我不知道 windows 的 powershell),它从列表中获取一行,然后查找出现在根目录中的每个 html 页面。
为了只提取文件名,我在 notepad++ 上尝试了这个正则表达式:

[^\\^\n]+\.[a-z]{0,4}

并且似乎有效...(^\n 是排除所有代表目录的行)
第二步,我尝试修改我在 stackoverflow 上找到的这些 Python 行:

import re
with open('filelist.txt') as f:
    for l in f:
        m = re.match('([^\\^\n]+\.[a-z]{0,4})', l)
        if m:
            print(m.group(1))

但它返回的字符串完全错误,充满空格或单个字母,就像正则表达式错误一样。 然后我想我可以使用正则表达式结果作为变量并以某种方式在我的根目录上的每个 html 页面上检查它,但我被困在这里。

【问题讨论】:

    标签: python html regex


    【解决方案1】:

    试试这个:

    ([\d+\w+\.\\\-])+
    

    【讨论】:

    • 它不起作用...它打印我文件扩展名的最后一个字母
    【解决方案2】:

    由于您确定文件名包含'.',因此可以在'\' 上拆分每个路径并检查它是否包含'.'。此外,剥离每一行会删除换行符。

    with open('filelist.txt') as f:
        for l in f:
          l= l.strip()
          if '.' in l.split('\\')[-1]:
              print l.split('\\')[-1]
    

    输出:

    5s.htm
    5s.html
    5s_introduction.htm
    linkedin.png
    project-slider-arrow-left.png
    project-slider-arrow-right.png
    

    【讨论】:

      猜你喜欢
      • 2013-11-30
      • 2011-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-07
      • 2020-01-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多