
-
NickAtNight
So what is the difference between request and urllib.request?
Same library, just different collections?
-
NickAtNight
Wow @TutorialDoctor. Just down loaded and ran the Web Browser tutorial. Very Nice.
-
NickAtNight
Tagging this discussion for future reference. link text
-
NickAtNight
Well that works pretty good @JonB.
I just learned how to transfer up a GIST.
First test:
https://gist.github.com/NickAtNight500How do we download a ZIP file?
-
NickAtNight
Backticks?
Ok, let's give it a try.
Here is a simple working version of your suggestion.
I like the 'wb' switch.
import requests print() destpath = 'ex24file.txt' url = "https://raw.githubusercontent.com/grrrr/py/741ba0500bc49e8f6268f02d23e461649e8d457b/scripts/buffer.py" with open(destpath,'wb') as file: file.write(requests.get(url).content)
-
NickAtNight
Well, not working on github.com
Getting coding error
Traceback (most recent call last):
File "/private/var/mobile/Containers/Shared/AppGroup/78B1F70D-7DE8-4840-87C8-F5C1D01E9EF5/Pythonista3/Documents/LPTHW/FileDownload.py", line 49, in <module>
fout.write(myfile)
UnicodeEncodeError: 'ascii' codec can't encode character '\xb7' in position 1367: ordinal not in range(128) -
NickAtNight
Well, that works modestly well. It downloaded both sample files for this Google code jam problem.
-
NickAtNight
Revised version.
Makes a Downliad file in Documents.
Puts download file thereimport console
import dialogs
import appex
import os.path
import urllib.request, urllib#Make a downloads directory
os.chdir(os.path.expanduser('~'))
os.chdir(os.path.join(os.getcwd(),'Documents'))test = os.path.isdir('Downloads')
print(test)if test == False:
print('Downloads created')
os.makedirs('Downloads')
else:
print('Downloads exists')print('Change dir to Downloads')
os.chdir(os.path.join(os.getcwd(),'Downloads'))
#Test if running as extenstion
test = appex.is_running_extension()if test == True:
filein = appex.get_url()
else:
myrun = dialogs.alert('Manual entry?', '','Enter manual URL',"Dummy")if myrun == 1:
filein = input("Enter the URL address of file to get:")else:
filein = "https://raw.githubusercontent.com/grrrr/py/741ba0500bc49e8f6268f02d23e461649e8d457b/scripts/buffer.py"fileparse = urllib.parse.urlparse(filein)
filepath,filename = os.path.split(fileparse.path)fin = urllib.request.urlopen(filein)
fout = open(filename,'w')
fout.truncate()
bytemyfile = fin.read()
myfile = bytemyfile.decode("utf-8")
fout.write(myfile)
print (myfile)fin.close()
fout.close() -
NickAtNight
Latest version,
-
Uses APPEX.
-- If running as a script, gets the file name from APPEX.
-- So navigate to file and invoke script.
-- No checking for the appropriate type of file. -
If not run as a script
-- Allow manual entry of entire file path.
-- Alterbative is to use the dummy test url -
I suppose I should make a 'download' directory and put the files in there, just below the root.
import console
import dialogs
import appex
import os.path
import urllib.request, urllibtest = appex.is_running_extension()
if test == True:
filein = appex.get_url()
else:
myrun = dialogs.alert('Manual entry?', '','Enter manual URL',"Dummy")
if myrun == 1:
filein = input("Enter the URL address of file to get:")else: filein = "https://raw.githubusercontent.com/grrrr/py/741ba0500bc49e8f6268f02d23e461649e8d457b/scripts/buffer.py"
fileparse = urllib.parse.urlparse(filein)
filepath,filename = os.path.split(fileparse.path)fin = urllib.request.urlopen(filein)
fout = open(filename,'w')
fout.truncate()
bytemyfile = fin.read()
myfile = bytemyfile.decode("utf-8")
fout.write(myfile)
print (myfile)fin.close()
fout.close() -
-
NickAtNight
Ok, I will have to try that. @lukaskollmer
How about this:
If I navigate to the file in Safari.
I can run a script.
Using APPEX will give me the URLimport appex r = appex.get_url() print(r)
Now I just need to put that url into the command.