【问题标题】:How to open a windows folder when clicking on some link on a HTML page using Python使用Python单击HTML页面上的某个链接时如何打开Windows文件夹
【发布时间】:2012-08-04 07:43:21
【问题描述】:

我正在编写以下程序:

***import os
filepath=r'C:\TestData\openfolder.html'
abc=open(filepath,'w')
abc.writelines('<html><head></head><body>')

abc.writelines('<a href="os.startfile(filepath)">First Link</a>\n')

abc.writelines('</body></html>')***

我想要做的是,如果我在浏览器上单击第一个链接,我应该能够打开路径为“文件路径”的文件夹。 os.startfile 非常适合打开文件夹,但我不知道如何在某个链接中实现它。 谢谢。

【问题讨论】:

  • 这个问题不会转给python。此外,最好明确指定您的操作系统,因为即使在不同的 Windows 版本上,解决方案也可能有所不同。

标签: html windows internet-explorer firefox google-chrome


【解决方案1】:

阿兰的回答有效。

链接文本'/a>

我把开头和结尾的勾去掉,发现可以在

  • Internet Explorer - 打开一个 Windows Explorer 窗口

  • Firefox(Windows 和 Linux),但会打开一个新选项卡 - 与 target="_blank"

  • Chrome - 像 Firefox 一样打开一个新标签

我还注意到 / 和 \(正斜杠和反斜杠)在 html 链接中是相等的 - 它们甚至可以混合使用。

【讨论】:

    【解决方案2】:

    尝试在您的 html 中使用带有 file: 方案的 URI,例如 file:///C:/TestData/openfolder.html

    <a href="file:///C:/TestData/openfolder.html">Link to test data</a>
    

    这里是article on using file URIs in Windows

    UPD(从 cmets 提取):每个浏览器都有自己的方式来处理此类 url。至少 Windows 7 下的 Internet Explorer 8 会按照 jags 的要求在 Windows Explorer 中打开链接。

    最后,对于动态页面,web server 是必需的。如果需要,请查看discussion on creating simple web services using python

    【讨论】:

    • 感谢您的回复。其实我不想在浏览器中打开文件夹。我想像 os.startfile(filepath) 打开它一样打开它。而且,我的文件路径随机更改。所以,我不能硬编码并在href中放置一个特定的值。我在 href 中的文件路径会针对不同的链接而更改,并且不固定。你能告诉我一些关于这个的解决方案吗?我正在使用 Windows 操作系统。
    • 好吧,请澄清您要构建的使用场景。您想要一些带有本地文件夹链接的动态网页,对吗?然后你要打开这些链接并在资源管理器中显示它们?
    • 此外,我刚刚在新安装的 Windows 7 Home Basic 下检查了 Internet Explorer 8,它打开了文件:Windows Explorer 中的 URL 不是它本身。
    • 非常感谢代尔。是的,它适用于 Internet Explorer。我只剩下 1 个问题:href 内的链接不是静态的。不同的文件是不同的。所以,如果我指定 newpath=r'file:\\\C:\New_folder\Engineering' 并且如果我想在 Link to test data 之类的 href 中使用它,这将无法访问新路径数据。如果您可以帮助我在 href 中提供动态链接(会发生变化),那就太好了。
    • 对于动态页面生成,您需要使用网络服务。例如,这里讨论了简单的 python web-server 实现:stackoverflow.com/questions/415192/…
    【解决方案3】:
    <a href="FOLDER_PATH" target="_explorer.exe">Link Text</a>
    

    FOLDER_PATH替换为您要在资源管理器中打开的文件夹的路径。

    【讨论】:

    • 对我不起作用,Chrome“版本 47.0.2526.111 m”。
    【解决方案4】:

    你不能。在浏览器中单击文件的链接将不会在操作系统上启动与该文件类型关联的应用程序。您显然可以使用 JavaScript 做一些时髦的事情来启动特定应用程序的特定文件类型(请参阅此处:http://forums.devshed.com/asp-programming-51/launching-ms-word-to-open-file-from-a-hyperlink-55714.html),但除此之外,Web 浏览器不是文件浏览器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-18
      • 1970-01-01
      • 1970-01-01
      • 2014-08-17
      • 2022-09-24
      • 1970-01-01
      相关资源
      最近更新 更多