Welcome!
This is the community forum for my apps Pythonista and Editorial.
For individual support questions, you can also send an email. If you have a very short question or just want to say hello — I'm @olemoritz on Twitter.
Download pdf on Safari and open in Pythonista script?
-
I download a pdf in Safari, then, on this pdf, I "open in" a Pythonista script that uses appex and receives a "get_url" as "file://..........pdf".
How can I read/copy this file locally in Pythonista dirs? -
To convert the
file:
URL to a normal path, you can simply remove thefile://
prefix usingpath = url[len("file://"):]
. (You can of course just writepath = url[7:]
, but it's not very obvious what the 7 means.)Pythonista's "Script Library" is located at
~/Documents
.~
is the "home" directory, to convert that to a normal path useos.path.expanduser("~/Documents")
.So if you want to save the file into Pythonista, you can use something like this:
import appex import os import shutil path = appex.get_url()[len("file://"):] name = os.path.basename(path) dest = os.path.join(os.path.expanduser("~/Documents"), name) shutil.copy(path, dest)
This could be condensed into less lines, I've split it up a little for clarity.
Though if you just want to work with the PDF file and don't need to keep it permanently, you can open the path normally:
with open(path, "rb"): # do whatever you need to
-
Resolved: just found "urlretrieve" in a post (jonB) of last week...
-
@dgelessus That won't work correctly if the URL contains percent escapes. A better method would be to use
urlparse
andurllib.url2pathname
, like this:from urlparse import urlparse from urllib import url2pathname p = urlparse(file_url) file_path = url2pathname(p.path)
-
Tanks a lot for your both clarifications...