Система не может найти указанный файл при попытке открыть URL в браузере - PullRequest
1 голос
/ 06 апреля 2019

Я получаю синтаксическую ошибку:

FileNotFoundError: [WinError 2] Системе не удается найти указанный файл

при запуске приведенного ниже кода.

Немного сложно найти хорошее решение этой проблемы для окон, в которых я работаю, по сравнению с UNIX, для которого я могу найти рабочий код.

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 голосов
/ 06 апреля 2019

Заменить

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

с

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

чтобы убедиться, что команда выполняется через оболочку.

Если передается одна строка, либо shell должен иметь значение True (см. Ниже), либо строка должна просто указывать имя программы, которая должна быть выполнена, без указания каких-либо аргументов.

Источник: https://docs.python.org/3/library/subprocess.html

0 голосов
/ 06 апреля 2019

Окна могут быть сброшены косыми чертами в URL.У меня сейчас нет машины с Windows, но не могли бы вы попробовать процитировать URL?

Было бы неплохо, если бы у вас это заработало, но правильный способ Python сделать это - использовать модуль webbrowser.Как это:

import webbrowser 

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

закрывать это было бы более сложно, но я думаю, что ваш вопрос является дубликатом этого, с почти точно таким же кодом, а также для окон.Поэтому я думаю, что вы должны сначала найти свой ответ там.

Как закрыть вкладку Интернета с помощью cmd / Python?

...