В Python довольно часто принимать и исключать, а не проверять значение заранее.Так что что-то вроде этого было бы идеально для меня и, вероятно, для большинства программистов на Python:
try:
opener.open(url)
except ValueError,e:
# fix url and try again
# ...
Но я не понимаю, как бы вы хотели обрабатывать URL-адреса без префикса автоматически.Префикс определяет используемый протокол.Если это не дано, как бы вы «угадали» это?