尝试在浏览器中打开URL时,系统找不到指定的文件

时间:2019-04-06 12:20:20

标签: python-3.x windows subprocess popen

我收到语法错误:

FileNotFoundError:[WinError 2]系统找不到指定的文件

运行以下代码时。

与我可以找到工作代码的UNIX相比,在我正在运行的Windows上很难找到一个解决此问题的好的方法。

from subprocess import Popen, check_call



p1 = Popen('start http://stackoverflow.com/')

p2 = Popen('start http://www.google.com/')

p3 = Popen('start http://www.facebook.com/')



time.sleep(60)

for pid in [p1.pid,p2.pid,p3.pid]:

    check_call(['taskkill', '/F', '/T', '/PID', str(pid)])

我希望代码打开页面60秒,然后关闭它们。

我知道链接上有类似的主题:

,但是首先它是针对python 2的,我已经尝试了使用子进程模块的代码,它们与我正在使用的代码相同,这是行不通的。

2 个答案:

答案 0 :(得分:0)

Windows可能会被URL中的斜杠抛弃。我现在没有Windows机器,但是您可以尝试引用网址吗?

如果您能做到这一点会很好,但是执行此操作的正确python方法是使用webbrowser模块。像这样:

import webbrowser 

url = "google.com"
webbrowser.open_new_tab(url)

关闭这些代码会比较棘手,但是我认为您的问题是此问题的重复,几乎完全相同的代码也适用于Windows。 因此,我认为您应该首先在此处搜索答案。

How to close an internet tab with cmd/Python?

答案 1 :(得分:0)

替换

p1 = Popen('start http://stackoverflow.com')

使用

p1 = Popen('start http://stackoverflow.com',shell=True)

,以确保命令是通过外壳执行的。

  

如果传递单个字符串,则外壳程序必须为True(请参见下文),否则该字符串必须简单地命名要执行的程序而无需指定任何参数。

来源:https://docs.python.org/3/library/subprocess.html