打开 URL 或 Python 中的本地文件 3
Open URL or local file in Python 3
我有一个字符串。
我要:
如果这个字符串是一个URL,我想打开这个URL。
否则,我想用这个名字打开一个本地文件
如果没有这样的对象,抛出异常。
在 Python 3 中,正确 并且足够简单(如果可能)的方法是什么?
主要问题是确定字符串是否为 URL 的正确方法。
这还没有经过测试,所以把它当作伪代码。
if s.startswith('http'):
# Do something
elif os.path.isfile(s):
file = open(s, 'r')
else:
raise Exception
试试这个:
import os
import webbrowser
import requests
webbrowser.open(s) if os.path.isfile(s) or requests.get(s) else exec("raise Exception")
取决于您所说的 URL 是什么意思。如果它是一个网址,它通常以 http://
或 https://
开头(通常,无论如何,这些都是您关心的情况)。但是,它也可能以 ftp://
或其他一些协议开头。但是,大多数图书馆接受 URIs,其中包括 file URI。在该方案中,文件位置看起来像以 file://
开头的 URL,因此您可以传递字符串,而不关心它是网址还是文件,库会处理它.没有直接的方法知道地址是否有效,但如果无效,库将抛出异常。
我有一个字符串。
我要:
如果这个字符串是一个URL,我想打开这个URL。
否则,我想用这个名字打开一个本地文件
如果没有这样的对象,抛出异常。
在 Python 3 中,正确 并且足够简单(如果可能)的方法是什么?
主要问题是确定字符串是否为 URL 的正确方法。
这还没有经过测试,所以把它当作伪代码。
if s.startswith('http'):
# Do something
elif os.path.isfile(s):
file = open(s, 'r')
else:
raise Exception
试试这个:
import os
import webbrowser
import requests
webbrowser.open(s) if os.path.isfile(s) or requests.get(s) else exec("raise Exception")
取决于您所说的 URL 是什么意思。如果它是一个网址,它通常以 http://
或 https://
开头(通常,无论如何,这些都是您关心的情况)。但是,它也可能以 ftp://
或其他一些协议开头。但是,大多数图书馆接受 URIs,其中包括 file URI。在该方案中,文件位置看起来像以 file://
开头的 URL,因此您可以传递字符串,而不关心它是网址还是文件,库会处理它.没有直接的方法知道地址是否有效,但如果无效,库将抛出异常。