29 lines
766 B
Python
29 lines
766 B
Python
import os
|
|
from urllib.parse import urlparse
|
|
import sys
|
|
|
|
|
|
def urls_to_path(urls: str) -> [str]:
|
|
result = []
|
|
url_list = urls.splitlines(keepends=False)
|
|
for url in url_list:
|
|
path = url_to_path(url)
|
|
result.append(path)
|
|
return result
|
|
|
|
def url_to_path(url: str) -> str:
|
|
p = urlparse(url)
|
|
if sys.platform == 'win32' or sys.platform == 'cygwin':
|
|
return os.path.abspath(p.path[1:])
|
|
return os.path.abspath(os.path.join(p.netloc, p.path))
|
|
|
|
|
|
def url_is_file(string: str) -> bool:
|
|
url_candidates = string.splitlines(keepends=False)
|
|
for url in url_candidates:
|
|
if url.startswith("file://"):
|
|
path = url_to_path(url)
|
|
if not os.path.isfile(path):
|
|
return False
|
|
return True
|