You gotta love a 2-line python solution

DFS nospam at dfs.com
Mon May 2 11:15:08 EDT 2016


On 5/2/2016 5:26 AM, BartC wrote:
> On 02/05/2016 04:39, DFS wrote:
>> To save a webpage to a file:
>> -------------------------------------
>> 1. import urllib
>> 2. urllib.urlretrieve("http://econpy.pythonanywhere.com
>>     /ex/001.html","D:\file.html")
>> -------------------------------------
>>
>> That's it!
>>
>> Coming from VB/A background, some of the stuff you can do with python -
>> with ease - is amazing.
>>
>>
>> VBScript version
>> ------------------------------------------------------
>> 1. Option Explicit
>> 2. Dim xmlHTTP, fso, fOut
>> 3. Set xmlHTTP = CreateObject("MSXML2.serverXMLHTTP")
>> 4. xmlHTTP.Open "GET", "http://econpy.pythonanywhere.com/ex/001.html"
>> 5. xmlHTTP.Send
>> 6. Set fso = CreateObject("Scripting.FileSystemObject")
>> 7. Set fOut = fso.CreateTextFile("D:\file.html", True)
>> 8.  fOut.WriteLine xmlHTTP.ResponseText
>> 9. fOut.Close
>> 10. Set fOut = Nothing
>> 11. Set fso  = Nothing
>> 12. Set xmlHTTP = Nothing
>> ------------------------------------------------------
>>
>> Technically, that VBS will run with just lines 3-9, but that's still 6
>> lines of code vs 2 for python.
>
> It seems Python provides a higher level solution compared with VBS.
> Python presumably also has to do those Opens and Sends, but they are
> hidden away inside urllib.urlretrieve.
>
> You can do the same with VB just by wrapping up these lines in a
> subroutine. As you would if this had to be executed in a dozen different
> places for example. Then you could just write:
>
> getfile("http://econpy.pythonanywhere.com/ex/001.html", "D:/file.html")
>
> in VBS too. (The forward slash in the file name ought to work.)


Of course.  Taken to its extreme, I could eventually replace you with 
one line of code :)

But python does it for me.  That would save me 8 lines...



> (I don't know VBS; I assume it does /have/ subroutines? What I haven't
> factored in here is error handling which might yet require more coding
> in VBS compared with Python)

Yeah, VBS has subs and functions.  And strange, limited error handling. 
And a single data type, called Variant.  But it's installed with Windows 
so it's easy to get going with.





More information about the Python-list mailing list