Получение странных ошибок для скрипта Python в строках, которые не существуют

#python #python-3.x #windows #search #browser

#python #python-3.x #Windows #Поиск #браузер

Вопрос:

Некоторое время назад я написал этот скрипт, который будет искать определение всех слов в searches.txt файл, он использовался для школьных лексических проектов. С началом нового учебного года мне нужно было восстановить его, чтобы использовать его снова. Я получаю странные ошибки, которые кажутся проблемой с моей установкой python, но я не получаю ничего подобного в других программах py, у меня также может не быть установленной библиотеки. Код и ошибки приведены ниже, дайте мне знать, в чем, по вашему мнению, проблема. Заранее спасибо!

Код

 from subprocess import call
import re
import sys

links = []

filename = 'C:\Users\TestoW\Documents\Coding\definition-search\searches.txt'

try:
    with open(filename) as linkListFile:
        for line in linkListFile:
            link = line.strip()
            if link != '':
                if re.match('http://. |https://. |ftp://. |file://. ', link.lower()):
                    links.append(link)
                else:
                    links.append('https://www.dictionary.com/browse/'   link)
                    #https://www.google.com/search?q=
                    #https://www.dictionary.com/browse/
                    #http://maps.google.com/?q=
except IOError:
    print ('Failed to open the file "%s".nExiting.')
    sys.exit()

print (links)
call(["open"] links)
  

seaches.txt пример

 Matter
Energy
Temperature
Non-Newtonian Liquid 
Sublimation
Deposition
  

ОШИБКА WINDOWS

 ['https://www.dictionary.com/browse/Matter', 'https://www.dictionary.com/browse/Energy', 'https://www.dictionary.com/bro
wse/Temperature', 'https://www.dictionary.com/browse/Non-Newtonian Liquid', 'https://www.dictionary.com/browse/Sublimati
on', 'https://www.dictionary.com/browse/Deposition', 'https://www.dictionary.com/browse/Melting Point', 'https://www.dic
tionary.com/browse/Boiling Point', 'https://www.dictionary.com/browse/Phase Change', 'https://www.dictionary.com/browse/
Endothermic', 'https://www.dictionary.com/browse/Exothermic', 'https://www.dictionary.com/browse/Compound', 'https://www
.dictionary.com/browse/Intrinsic Property', 'https://www.dictionary.com/browse/Extrinsic Property', 'https://www.diction
ary.com/browse/Crystallization', 'https://www.dictionary.com/browse/Centrifugation', 'https://www.dictionary.com/browse/
Distillation', 'https://www.dictionary.com/browse/Chromatography', 'https://www.dictionary.com/browse/Filtration', 'http
s://www.dictionary.com/browse/Homogeneous', 'https://www.dictionary.com/browse/Heterogeneous']
Traceback (most recent call last):
  File "C:UsersTestoWDocumentsCodingdefinition-searchAutoLookUp.py", line 26, in <module>
    call(["open"] links)
  File "C:Python38libsubprocess.py", line 340, in call
    with Popen(*popenargs, **kwargs) as p:
  File "C:Python38libsubprocess.py", line 854, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "C:Python38libsubprocess.py", line 1307, in _execute_child
    hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
FileNotFoundError: [WinError 2] The system cannot find the file specified

C:UsersTestoW>
  

Комментарии:

1. Это говорит о том, что он не может найти open команду.

2. … и «открыть» не является допустимой командой Windows, поэтому она ищет файл с этим именем.

Ответ №1:

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

 for lnk in links:
   call(["start"] [lnk], shell=True)
  

— Обновить —

Найден другой способ открыть ссылки, не открывая окно cmd.

 import win32com.client
sh = win32com.client.Dispatch('WScript.Shell')
for lnk in links:
   sh.run(lnk)
  

Комментарии:

1. Спасибо, это работает, есть ли способ не открывать экземпляр cmd для каждого поиска?