<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4817467572020784234</id><updated>2012-01-08T08:44:48.992-08:00</updated><category term='windows'/><category term='raccourcis'/><category term='key'/><category term='Usb'/><category term='download picture pictures jpg JPG url list series serie'/><category term='shortcut'/><title type='text'>One Python Script a Week Keep the Geek at Peak</title><subtitle type='html'>Just one useful python script by week.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://onescriptaweek.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4817467572020784234/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://onescriptaweek.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>bussiere</name><uri>http://www.blogger.com/profile/03358445872320058856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>3</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4817467572020784234.post-2545369470565257806</id><published>2008-09-07T11:58:00.000-07:00</published><updated>2008-09-14T08:10:08.885-07:00</updated><title type='text'>get the stock value and it's historical on google finance</title><content type='html'>what &lt;br /&gt;get the historical value on google finance&lt;br /&gt;why : &lt;br /&gt;A beginnig for a stock analyze program.&lt;br /&gt;&lt;div class="syntax" &gt;&lt;pre&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;urllib2&lt;/span&gt;&lt;br /&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;re&lt;/span&gt;&lt;br /&gt;&lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;table_parser&lt;/span&gt; &lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="sd"&gt;&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="sd"&gt;By bussiere bussiere @at gmail.com&lt;/span&gt;&lt;br /&gt;&lt;span class="sd"&gt;thanks to :&lt;/span&gt;&lt;br /&gt;&lt;span class="sd"&gt;http://simbot.wordpress.com/2006/05/17/html-tables-parsed-using-python/&lt;/span&gt;&lt;br /&gt;&lt;span class="sd"&gt;Nigel Sim &amp;lt;nigel.sim @at gmail.com&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="sd"&gt;http://simbot.wordpress.com&lt;/span&gt;&lt;br /&gt;&lt;span class="sd"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="sd"&gt;&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="n"&gt;__Author__&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;bussiere&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="n"&gt;__Email__&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;bussiere @at gmail.com&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="n"&gt;__Titre__&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;get some value with google finance&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="n"&gt;__Description__&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;get the historical value on google finance&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="n"&gt;__Discussion__&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;A beginnig for a stock analyze program.&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="n"&gt;__Tags__&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;google fiance stock value historical&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;get_finance&lt;/span&gt;(&lt;span class="n"&gt;value&lt;/span&gt;):&lt;br /&gt;    &lt;span class="c"&gt;#we make a url for google finance with the value given&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;link&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;http://finance.google.com/finance?q=&lt;/span&gt;&lt;span class="si"&gt;%s&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;br /&gt;    &lt;span class="c"&gt;#we open this url&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;page&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;urllib2&lt;/span&gt;.&lt;span class="n"&gt;urlopen&lt;/span&gt;(&lt;span class="n"&gt;link&lt;/span&gt;).&lt;span class="n"&gt;read&lt;/span&gt;()&lt;br /&gt;    &lt;span class="c"&gt;#we find where is the hisctorical link&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;findhistorical&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;re&lt;/span&gt;.&lt;span class="n"&gt;findall&lt;/span&gt;(&lt;span class="s"&gt;&amp;quot;/finance/historical\?q.*&lt;/span&gt;&lt;span class="se"&gt;\&amp;quot;&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;&lt;/span&gt;, &lt;span class="n"&gt;page&lt;/span&gt;)&lt;br /&gt;    &lt;span class="c"&gt;#we substract the &amp;quot; at the end of the string&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;findhistorical&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;findhistorical&lt;/span&gt;[&lt;span class="mi"&gt;0&lt;/span&gt;].&lt;span class="n"&gt;replace&lt;/span&gt;(&lt;span class="s"&gt;&amp;#39;&lt;/span&gt;&lt;span class="se"&gt;\&amp;quot;&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;&lt;/span&gt;,&lt;span class="s"&gt;&amp;#39;&amp;#39;&lt;/span&gt;)&lt;br /&gt;    &lt;span class="c"&gt;#we make a link for the historical page of the value&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;histlink&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;http://finance.google.com&lt;/span&gt;&lt;span class="si"&gt;%s&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="n"&gt;findhistorical&lt;/span&gt;&lt;br /&gt;    &lt;span class="c"&gt;#we open the historical page&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;hist&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;urllib2&lt;/span&gt;.&lt;span class="n"&gt;urlopen&lt;/span&gt;(&lt;span class="n"&gt;histlink&lt;/span&gt;).&lt;span class="n"&gt;read&lt;/span&gt;()&lt;br /&gt;    &lt;span class="c"&gt;#we find the link for getting the data in csv mode&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;findcsv&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;re&lt;/span&gt;.&lt;span class="n"&gt;findall&lt;/span&gt;(&lt;span class="s"&gt;&amp;#39;http://finance.*csv&amp;#39;&lt;/span&gt;,&lt;span class="n"&gt;hist&lt;/span&gt;)&lt;br /&gt;    &lt;span class="c"&gt;#we open the link&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;csv&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;br /&gt;    &lt;span class="k"&gt;try&lt;/span&gt; :&lt;br /&gt;        &lt;span class="c"&gt;#we try to get the csv file if existent&lt;/span&gt;&lt;br /&gt;        &lt;span class="n"&gt;csv&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;urllib2&lt;/span&gt;.&lt;span class="n"&gt;urlopen&lt;/span&gt;(&lt;span class="n"&gt;findcsv&lt;/span&gt;[&lt;span class="mi"&gt;0&lt;/span&gt;]).&lt;span class="n"&gt;read&lt;/span&gt;()&lt;br /&gt;    &lt;span class="k"&gt;except&lt;/span&gt; :&lt;br /&gt;        &lt;span class="c"&gt;#else we parse the google finance page with table parser&lt;/span&gt;&lt;br /&gt;        &lt;span class="n"&gt;findcsv&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;re&lt;/span&gt;.&lt;span class="n"&gt;findall&lt;/span&gt;(&lt;span class="s"&gt;&amp;#39;&amp;lt;div id=prices&amp;gt;.*?&amp;lt;/table&amp;gt;&amp;#39;&lt;/span&gt;,&lt;span class="n"&gt;hist&lt;/span&gt;,&lt;span class="n"&gt;re&lt;/span&gt;.&lt;span class="n"&gt;S&lt;/span&gt;)&lt;br /&gt;        &lt;span class="n"&gt;p&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;TableParser&lt;/span&gt;()&lt;br /&gt;        &lt;span class="n"&gt;p&lt;/span&gt;.&lt;span class="n"&gt;feed&lt;/span&gt;(&lt;span class="n"&gt;findcsv&lt;/span&gt;[&lt;span class="mi"&gt;0&lt;/span&gt;])&lt;br /&gt;        &lt;span class="n"&gt;csv&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt;.&lt;span class="n"&gt;doc&lt;/span&gt;&lt;br /&gt;    &lt;span class="c"&gt;#we return the csv data for the value&lt;/span&gt;&lt;br /&gt;    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;csv&lt;/span&gt;&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;&lt;br /&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;(&lt;span class="n"&gt;argv&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;None&lt;/span&gt;):&lt;br /&gt;    &lt;span class="c"&gt;# we get the argument passed on the command line&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;value&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;  &lt;span class="n"&gt;sys&lt;/span&gt;.&lt;span class="n"&gt;argv&lt;/span&gt;[&lt;span class="mi"&gt;1&lt;/span&gt;]&lt;br /&gt;    &lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="n"&gt;get_finance&lt;/span&gt;(&lt;span class="n"&gt;value&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;__name__&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;__main__&amp;quot;&lt;/span&gt;:&lt;br /&gt;    &lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;sys&lt;/span&gt;&lt;br /&gt;    &lt;span class="c"&gt;#we call the main function&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;sys&lt;/span&gt;.&lt;span class="n"&gt;exit&lt;/span&gt;(&lt;span class="n"&gt;main&lt;/span&gt;())&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br&gt;&lt;a href='http://code.activestate.com'&gt;Script on the python cookbook&lt;/a&gt;&lt;br&gt;&lt;br /&gt;    &lt;!-- AddThis Button BEGIN --&gt;&lt;br /&gt;    &lt;a href="http://www.addthis.com/bookmark.php" onclick="addthis_url   = location.href; addthis_title = document.title; return addthis_click(this);" target="_blank"&gt;&lt;img src="http://s9.addthis.com/button1-addthis.gif" width="125" height="16" border="0" alt="Bookmark and Share" /&gt;&lt;/a&gt; &lt;script type="text/javascript"&gt;var addthis_pub = 'bussiere';&lt;/script&gt;&lt;script type="text/javascript" src="http://s9.addthis.com/js/widget.php?v=10"&gt;&lt;/script&gt;  &lt;br /&gt;    &lt;!-- AddThis Button END --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4817467572020784234-2545369470565257806?l=onescriptaweek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://onescriptaweek.blogspot.com/feeds/2545369470565257806/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4817467572020784234&amp;postID=2545369470565257806' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4817467572020784234/posts/default/2545369470565257806'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4817467572020784234/posts/default/2545369470565257806'/><link rel='alternate' type='text/html' href='http://onescriptaweek.blogspot.com/2008/09/get-stock-value-and-its-historical-on.html' title='get the stock value and it&apos;s historical on google finance'/><author><name>bussiere</name><uri>http://www.blogger.com/profile/03358445872320058856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4817467572020784234.post-7812074056336131635</id><published>2008-08-29T15:30:00.000-07:00</published><updated>2008-08-29T15:49:40.724-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='download picture pictures jpg JPG url list series serie'/><title type='text'>downloading a serial list of picture from the web</title><content type='html'>what &lt;br /&gt;give this program an url from a pciture and it will try to download all the list of existing picture exemple : downloader.py http://www.example.com/picture01.jpg&lt;br /&gt;why : &lt;br /&gt;some times i've got a link like http://www.example.com/picture01.jpg and i guess that there are more picture of it this program will try to find them all and download them all&lt;br /&gt;&lt;div class="syntax" &gt;&lt;pre&gt;&lt;span class="sd"&gt;&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="sd"&gt;By bussiere bussiere @at gmail.com&lt;/span&gt;&lt;br /&gt;&lt;span class="sd"&gt;&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="n"&gt;__Author__&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;bussiere&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="n"&gt;__Email__&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;bussiere @at gmail.com&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="n"&gt;__Titre__&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;downloading a serial list of picture from the web&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="n"&gt;__Description__&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;give this program an url from a pciture and it will try to download all the list of existing picture exemple : downloader.py http://www.example.com/picture01.jpg&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="n"&gt;__Discussion__&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;some times i&amp;#39;ve got a link like http://www.example.com/picture01.jpg and i guess that there are more picture of it this program will try to find them all and download them all&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="n"&gt;__Tags__&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;download picture pictures jpg JPG url list series serie&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;re&lt;/span&gt;&lt;br /&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;time&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="nn"&gt;datetime&lt;/span&gt;&lt;br /&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;urllib2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;download_pictures&lt;/span&gt;(&lt;span class="n"&gt;url&lt;/span&gt;,&lt;span class="n"&gt;start&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;,&lt;span class="n"&gt;limit&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;999&lt;/span&gt;,&lt;span class="n"&gt;trial&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;):&lt;br /&gt;    &lt;span class="c"&gt;#we compile the regular exepression that will get the number and the point of the url as 01. in the http://www.example.com/picture01.jpg&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;reg&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;re&lt;/span&gt;.&lt;span class="n"&gt;compile&lt;/span&gt;(&lt;span class="s"&gt;&amp;quot;[0-9]+\.&amp;quot;&lt;/span&gt;)&lt;br /&gt;    &lt;span class="c"&gt;# here we compile a regular expression for find html in data&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;reghtml&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;re&lt;/span&gt;.&lt;span class="n"&gt;compile&lt;/span&gt;(&lt;span class="s"&gt;&amp;#39;HTML&amp;#39;&lt;/span&gt;)&lt;br /&gt;    &lt;span class="c"&gt;# we search the numbers with . in the url&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;reg&lt;/span&gt;.&lt;span class="n"&gt;search&lt;/span&gt;(&lt;span class="n"&gt;url&lt;/span&gt;)&lt;br /&gt;    &lt;span class="c"&gt;# we get the begining position and the ending position of the numbers with .&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;begin&lt;/span&gt; , &lt;span class="n"&gt;end&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;  &lt;span class="n"&gt;result&lt;/span&gt;.&lt;span class="n"&gt;span&lt;/span&gt;()&lt;br /&gt;    &lt;span class="c"&gt;# we don&amp;#39;t need the . at the end so we finish it earlier&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;end&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;  &lt;span class="n"&gt;end&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;br /&gt;    &lt;span class="c"&gt;#this string wil contain some zero because sometimes in the url it&amp;#39;s 0001.jpg or 01.jpg or 1.jpg&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;zero&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;br /&gt;    &lt;span class="c"&gt;#the i will count the zero&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;br /&gt;    &lt;span class="c"&gt;#we put how 0 in zero that we have number in the url save one&lt;/span&gt;&lt;br /&gt;    &lt;span class="k"&gt;while&lt;/span&gt;  &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;end&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;begin&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; :&lt;br /&gt;        &lt;span class="n"&gt;zero&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;0&amp;#39;&lt;/span&gt;&lt;br /&gt;        &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;br /&gt;    &lt;span class="c"&gt;#here we get the extension a the end of the url .jpg here&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;extension&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;url&lt;/span&gt;[&lt;span class="n"&gt;end&lt;/span&gt;:]&lt;br /&gt;    &lt;span class="c"&gt;#count will determine how many times we have tried to download a file&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;count&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;br /&gt;    &lt;span class="c"&gt;#while the download number is inferior of the limit let&amp;#39;s goes on&lt;/span&gt;&lt;br /&gt;    &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="n"&gt;start&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;limit&lt;/span&gt; :&lt;br /&gt;        &lt;span class="c"&gt;#we get the time&lt;/span&gt;&lt;br /&gt;        &lt;span class="n"&gt;t&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;.&lt;span class="n"&gt;datetime&lt;/span&gt;.&lt;span class="n"&gt;now&lt;/span&gt;()&lt;br /&gt;        &lt;span class="c"&gt;# we make a file name with the epoch to be sure that the name will exist just one time&lt;/span&gt;&lt;br /&gt;        &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;&lt;/span&gt;&lt;span class="si"&gt;%s&lt;/span&gt;&lt;span class="s"&gt;.&lt;/span&gt;&lt;span class="si"&gt;%s&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;(&lt;span class="n"&gt;time&lt;/span&gt;.&lt;span class="n"&gt;mktime&lt;/span&gt;(&lt;span class="n"&gt;t&lt;/span&gt;.&lt;span class="n"&gt;timetuple&lt;/span&gt;()),&lt;span class="n"&gt;extension&lt;/span&gt;)&lt;br /&gt;        &lt;span class="c"&gt;# we make the url to download the file based on the url mixed with zero and the number of the download&lt;/span&gt;&lt;br /&gt;        &lt;span class="n"&gt;urlbis&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;&lt;/span&gt;&lt;span class="si"&gt;%s%s%s%s&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;(&lt;span class="n"&gt;url&lt;/span&gt;[:&lt;span class="n"&gt;begin&lt;/span&gt;],&lt;span class="n"&gt;zero&lt;/span&gt;,&lt;span class="n"&gt;start&lt;/span&gt;,&lt;span class="n"&gt;url&lt;/span&gt;[&lt;span class="n"&gt;end&lt;/span&gt;:])&lt;br /&gt;        &lt;span class="c"&gt;#we try to download the file&lt;/span&gt;&lt;br /&gt;        &lt;span class="k"&gt;try&lt;/span&gt; :&lt;br /&gt;            &lt;span class="c"&gt;#here we open the url&lt;/span&gt;&lt;br /&gt;            &lt;span class="n"&gt;remoteFile&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;urllib2&lt;/span&gt;.&lt;span class="n"&gt;urlopen&lt;/span&gt;(&lt;span class="n"&gt;urlbis&lt;/span&gt;)&lt;br /&gt;            &lt;span class="c"&gt;#we read the file that we get&lt;/span&gt;&lt;br /&gt;            &lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;remoteFile&lt;/span&gt;.&lt;span class="n"&gt;read&lt;/span&gt;()&lt;br /&gt;            &lt;span class="c"&gt;# if the file does not exist sometimes we get a 404 error with the word HTML in it&lt;/span&gt;&lt;br /&gt;            &lt;span class="c"&gt;#so we check for it and if it is not in.&lt;/span&gt;&lt;br /&gt;            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;reghtml&lt;/span&gt;.&lt;span class="n"&gt;search&lt;/span&gt;(&lt;span class="n"&gt;data&lt;/span&gt;) :&lt;br /&gt;                &lt;span class="c"&gt;#we create a file with the epoch name&lt;/span&gt;&lt;br /&gt;                &lt;span class="n"&gt;localFile&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;open&lt;/span&gt;(&lt;span class="n"&gt;name&lt;/span&gt;, &lt;span class="s"&gt;&amp;quot;wb&amp;quot;&lt;/span&gt;)&lt;br /&gt;                &lt;span class="c"&gt;# we write the data in it&lt;/span&gt;&lt;br /&gt;                &lt;span class="n"&gt;localFile&lt;/span&gt;.&lt;span class="n"&gt;write&lt;/span&gt;(&lt;span class="n"&gt;data&lt;/span&gt;)&lt;br /&gt;                &lt;span class="c"&gt;#we close it&lt;/span&gt;&lt;br /&gt;                &lt;span class="n"&gt;localFile&lt;/span&gt;.&lt;span class="n"&gt;close&lt;/span&gt;()&lt;br /&gt;            &lt;span class="k"&gt;else&lt;/span&gt; :&lt;br /&gt;                &lt;span class="c"&gt;#if there is the word HTML in it &lt;/span&gt;&lt;br /&gt;                &lt;span class="c"&gt;#we end the loop&lt;/span&gt;&lt;br /&gt;                &lt;span class="k"&gt;break&lt;/span&gt;&lt;br /&gt;        &lt;span class="c"&gt;#here it is if we can&amp;#39;t get any file at all&lt;/span&gt;&lt;br /&gt;        &lt;span class="k"&gt;except&lt;/span&gt; :&lt;br /&gt;            &lt;span class="c"&gt;# if the zero count equal zero we increase the count and put zero blank&lt;/span&gt;&lt;br /&gt;            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; :&lt;br /&gt;                &lt;span class="n"&gt;zero&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;br /&gt;                &lt;span class="n"&gt;count&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;br /&gt;            &lt;span class="c"&gt;#here we just sustract zero&lt;/span&gt;&lt;br /&gt;            &lt;span class="k"&gt;else&lt;/span&gt; :&lt;br /&gt;                &lt;span class="c"&gt;# we reduce the zero counter&lt;/span&gt;&lt;br /&gt;                &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;   &lt;br /&gt;                &lt;span class="c"&gt;# we substract one zero&lt;/span&gt;&lt;br /&gt;                &lt;span class="n"&gt;zero&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;zero&lt;/span&gt;[:&lt;span class="n"&gt;i&lt;/span&gt;] &lt;br /&gt;                &lt;span class="c"&gt;# and we substract one to the counter of file to make it retry this file with one zero less&lt;/span&gt;&lt;br /&gt;                &lt;span class="n"&gt;start&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;start&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;           &lt;br /&gt;        &lt;span class="c"&gt;# if the failure counter is equal to the trial number we get out&lt;/span&gt;&lt;br /&gt;        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;count&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;trial&lt;/span&gt;  :&lt;br /&gt;            &lt;span class="k"&gt;break&lt;/span&gt;&lt;br /&gt;        &lt;span class="c"&gt;#we just increase the file counter&lt;/span&gt;&lt;br /&gt;        &lt;span class="n"&gt;start&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;br /&gt;        &lt;br /&gt;&lt;br /&gt;        &lt;br /&gt;    &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;(&lt;span class="n"&gt;argv&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;None&lt;/span&gt;):&lt;br /&gt;    &lt;span class="c"&gt;# we get the argument passed on the command line&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;argv&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;sys&lt;/span&gt;.&lt;span class="n"&gt;argv&lt;/span&gt;&lt;br /&gt;    &lt;span class="c"&gt;#we initialize the argument at none&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;None&lt;/span&gt;&lt;br /&gt;    &lt;span class="c"&gt;#at which number we begin to download&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;start&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;  &lt;span class="bp"&gt;None&lt;/span&gt;&lt;br /&gt;    &lt;span class="c"&gt;#how many download ?&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;limit&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;None&lt;/span&gt;&lt;br /&gt;    &lt;span class="c"&gt;# how many time we will try to download&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;trial&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;None&lt;/span&gt;&lt;br /&gt;    &lt;span class="c"&gt;#we get the argument in a list&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;options&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;  &lt;span class="n"&gt;sys&lt;/span&gt;.&lt;span class="n"&gt;argv&lt;/span&gt;[&lt;span class="mi"&gt;1&lt;/span&gt;:]&lt;br /&gt;    &lt;span class="c"&gt;#we put the option one after one and initialise them&lt;/span&gt;&lt;br /&gt;    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;option&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;options&lt;/span&gt; :&lt;br /&gt;        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;url&lt;/span&gt; :&lt;br /&gt;            &lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;option&lt;/span&gt;&lt;br /&gt;        &lt;span class="k"&gt;else&lt;/span&gt; :&lt;br /&gt;            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;start&lt;/span&gt; :&lt;br /&gt;                &lt;span class="n"&gt;start&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;option&lt;/span&gt;&lt;br /&gt;            &lt;span class="k"&gt;else&lt;/span&gt; :&lt;br /&gt;                &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;limit&lt;/span&gt; :&lt;br /&gt;                    &lt;span class="n"&gt;limit&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;option&lt;/span&gt;&lt;br /&gt;                &lt;span class="k"&gt;else&lt;/span&gt; :&lt;br /&gt;                    &lt;span class="n"&gt;trial&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;trial&lt;/span&gt;&lt;br /&gt;    &lt;span class="c"&gt;#if some options ar empty we put the default value&lt;/span&gt;&lt;br /&gt;    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;start&lt;/span&gt; :&lt;br /&gt;        &lt;span class="n"&gt;start&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;br /&gt;    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;limit&lt;/span&gt; :&lt;br /&gt;        &lt;span class="n"&gt;limit&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;999&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;start&lt;/span&gt;&lt;br /&gt;    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;trial&lt;/span&gt; :&lt;br /&gt;        &lt;span class="n"&gt;trial&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt; &lt;br /&gt;    &lt;span class="c"&gt;#we call the download picture&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;download_pictures&lt;/span&gt;(&lt;span class="n"&gt;url&lt;/span&gt;,&lt;span class="n"&gt;start&lt;/span&gt;,&lt;span class="n"&gt;limit&lt;/span&gt;,&lt;span class="n"&gt;trial&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;__name__&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;__main__&amp;quot;&lt;/span&gt;:&lt;br /&gt;    &lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;sys&lt;/span&gt;&lt;br /&gt;    &lt;span class="c"&gt;#we call the main function&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;sys&lt;/span&gt;.&lt;span class="n"&gt;exit&lt;/span&gt;(&lt;span class="n"&gt;main&lt;/span&gt;())&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br&gt;&lt;a href='http://code.activestate.com'&gt;Script on the python cookbook&lt;/a&gt;&lt;br&gt;&lt;br /&gt;    &lt;!-- AddThis Button BEGIN --&gt;&lt;br /&gt;    &lt;a href="http://www.addthis.com/bookmark.php" onclick="addthis_url   = location.href; addthis_title = document.title; return addthis_click(this);" target="_blank"&gt;&lt;img src="http://s9.addthis.com/button1-addthis.gif" width="125" height="16" border="0" alt="Bookmark and Share" /&gt;&lt;/a&gt; &lt;script type="text/javascript"&gt;var addthis_pub = 'bussiere';&lt;/script&gt;&lt;script type="text/javascript" src="http://s9.addthis.com/js/widget.php?v=10"&gt;&lt;/script&gt;  &lt;br /&gt;    &lt;!-- AddThis Button END --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4817467572020784234-7812074056336131635?l=onescriptaweek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://onescriptaweek.blogspot.com/feeds/7812074056336131635/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4817467572020784234&amp;postID=7812074056336131635' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4817467572020784234/posts/default/7812074056336131635'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4817467572020784234/posts/default/7812074056336131635'/><link rel='alternate' type='text/html' href='http://onescriptaweek.blogspot.com/2008/08/downloading-serial-list-of-picture-from.html' title='downloading a serial list of picture from the web'/><author><name>bussiere</name><uri>http://www.blogger.com/profile/03358445872320058856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4817467572020784234.post-8734363705551624504</id><published>2008-08-22T06:29:00.001-07:00</published><updated>2008-08-22T06:44:10.875-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='raccourcis'/><category scheme='http://www.blogger.com/atom/ns#' term='key'/><category scheme='http://www.blogger.com/atom/ns#' term='Usb'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='shortcut'/><title type='text'>Changing shortcut on a usb key v2</title><content type='html'>what&lt;br /&gt;Changing the drive of a list of shortcut automatically must be placed in the shortcut directory on the usb key&lt;br /&gt;why :&lt;br /&gt;i've made some shortcut on my usb key for  &lt;a href="http://www.launchy.net/"&gt; launchy&lt;/a&gt; and i had always to change them if on one pc the usb drive was i: on an other it was k: it was such a pain each time. Now it change all the shortcut automatically.&lt;br /&gt;&lt;div class="syntax"&gt;&lt;pre&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;sys&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="nn"&gt;glob&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="nn"&gt;re&lt;/span&gt;&lt;br /&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;pythoncom&lt;/span&gt;&lt;br /&gt;&lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;win32com.shell&lt;/span&gt; &lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="n"&gt;shell&lt;/span&gt;&lt;br /&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;win32com&lt;/span&gt;&lt;br /&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;win32com.client&lt;/span&gt;&lt;br /&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;string&lt;/span&gt;&lt;br /&gt;&lt;span class="sd"&gt;"""&lt;/span&gt;&lt;br /&gt;&lt;span class="sd"&gt;By bussiere bussiere @at gmail.com&lt;/span&gt;&lt;br /&gt;&lt;span class="sd"&gt;thanks to :&lt;/span&gt;&lt;br /&gt;&lt;span class="sd"&gt;http://www.blog.pythonlibrary.org/&lt;/span&gt;&lt;br /&gt;&lt;span class="sd"&gt;http://www.blog.pythonlibrary.org/?p=21&lt;/span&gt;&lt;br /&gt;&lt;span class="sd"&gt;and :&lt;/span&gt;&lt;br /&gt;&lt;span class="sd"&gt;http://codesnippets.joyent.com/tag/python&lt;/span&gt;&lt;br /&gt;&lt;span class="sd"&gt;http://codesnippets.joyent.com/tag/python#post529&lt;/span&gt;&lt;br /&gt;&lt;span class="sd"&gt;"""&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="n"&gt;__Author__&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"bussiere"&lt;/span&gt;&lt;br /&gt;&lt;span class="n"&gt;__Email__&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"bussiere @at gmail.com"&lt;/span&gt;&lt;br /&gt;&lt;span class="n"&gt;__Titre__&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Changing shortcut on a usb key v2"&lt;/span&gt;&lt;br /&gt;&lt;span class="n"&gt;__Description__&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Changing the drive of a list of shortcut automatically must be placed in the shortcut directory on the usb key"&lt;/span&gt;&lt;br /&gt;&lt;span class="n"&gt;__Discussion__&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"i've made some shortcut on my usb key for  http://www.launchy.net/ launchy and i had always to change them if on one pc the usb drive was i: on an other it was k: it was such a pain each time. Now it change all the shortcut automatically."&lt;/span&gt;&lt;br /&gt;&lt;span class="n"&gt;__Tags__&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"Usb shortcut windows key raccourcis"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Win32Shortcut&lt;/span&gt;:&lt;br /&gt;   &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;__init__&lt;/span&gt;(&lt;span class="bp"&gt;self&lt;/span&gt;, &lt;span class="n"&gt;lnkname&lt;/span&gt;):&lt;br /&gt;       &lt;span class="bp"&gt;self&lt;/span&gt;.&lt;span class="n"&gt;shortcut&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pythoncom&lt;/span&gt;.&lt;span class="n"&gt;CoCreateInstance&lt;/span&gt;(&lt;br /&gt;           &lt;span class="n"&gt;shell&lt;/span&gt;.&lt;span class="n"&gt;CLSID_ShellLink&lt;/span&gt;, &lt;span class="bp"&gt;None&lt;/span&gt;,&lt;br /&gt;           &lt;span class="n"&gt;pythoncom&lt;/span&gt;.&lt;span class="n"&gt;CLSCTX_INPROC_SERVER&lt;/span&gt;, &lt;span class="n"&gt;shell&lt;/span&gt;.&lt;span class="n"&gt;IID_IShellLink&lt;/span&gt;)&lt;br /&gt;       &lt;span class="bp"&gt;self&lt;/span&gt;.&lt;span class="n"&gt;shortcut&lt;/span&gt;.&lt;span class="n"&gt;QueryInterface&lt;/span&gt;(&lt;span class="n"&gt;pythoncom&lt;/span&gt;.&lt;span class="n"&gt;IID_IPersistFile&lt;/span&gt;).&lt;span class="n"&gt;Load&lt;/span&gt;(&lt;span class="n"&gt;lnkname&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;   &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;__getattr__&lt;/span&gt;(&lt;span class="bp"&gt;self&lt;/span&gt;, &lt;span class="n"&gt;name&lt;/span&gt;):&lt;br /&gt;       &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nb"&gt;getattr&lt;/span&gt;(&lt;span class="bp"&gt;self&lt;/span&gt;.&lt;span class="n"&gt;shortcut&lt;/span&gt;, &lt;span class="n"&gt;name&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;():&lt;br /&gt;  &lt;br /&gt;   &lt;span class="n"&gt;shell2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;win32com&lt;/span&gt;.&lt;span class="n"&gt;client&lt;/span&gt;.&lt;span class="n"&gt;Dispatch&lt;/span&gt;(&lt;span class="s"&gt;'WScript.Shell'&lt;/span&gt;)&lt;br /&gt;   &lt;span class="c"&gt;# here we just get the drive where is the usb key&lt;/span&gt;&lt;br /&gt;   &lt;span class="n"&gt;drive&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;sys&lt;/span&gt;.&lt;span class="n"&gt;path&lt;/span&gt;[&lt;span class="mi"&gt;0&lt;/span&gt;][&lt;span class="mi"&gt;0&lt;/span&gt;:&lt;span class="mi"&gt;2&lt;/span&gt;]&lt;br /&gt;   &lt;span class="c"&gt;#here we list all the file on the shortcut directory&lt;/span&gt;&lt;br /&gt;   &lt;span class="n"&gt;files&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;glob&lt;/span&gt;.&lt;span class="n"&gt;glob&lt;/span&gt;(&lt;span class="n"&gt;sys&lt;/span&gt;.&lt;span class="n"&gt;path&lt;/span&gt;[&lt;span class="mi"&gt;0&lt;/span&gt;]&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="s"&gt;'/*'&lt;/span&gt;)&lt;br /&gt;   &lt;span class="c"&gt;# here we take one file path&lt;/span&gt;&lt;br /&gt;   &lt;span class="n"&gt;path&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;glob&lt;/span&gt;.&lt;span class="n"&gt;glob&lt;/span&gt;(&lt;span class="n"&gt;sys&lt;/span&gt;.&lt;span class="n"&gt;path&lt;/span&gt;[&lt;span class="mi"&gt;0&lt;/span&gt;])[&lt;span class="mi"&gt;0&lt;/span&gt;]&lt;br /&gt;   &lt;span class="c"&gt;#we normalize the path for python&lt;/span&gt;&lt;br /&gt;   &lt;span class="n"&gt;path&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;string&lt;/span&gt;.&lt;span class="n"&gt;replace&lt;/span&gt;(&lt;span class="n"&gt;path&lt;/span&gt;,&lt;span class="s"&gt;'&lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="s"&gt;'&lt;/span&gt;,&lt;span class="s"&gt;'&lt;/span&gt;&lt;span class="se"&gt;\\\\&lt;/span&gt;&lt;span class="s"&gt;'&lt;/span&gt;)&lt;br /&gt;   &lt;span class="c"&gt;# we prepare a regexp for finding the shortcuts&lt;/span&gt;&lt;br /&gt;   &lt;span class="n"&gt;p&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;re&lt;/span&gt;.&lt;span class="n"&gt;compile&lt;/span&gt;(&lt;span class="s"&gt;'\.lnk'&lt;/span&gt;)&lt;br /&gt;  &lt;br /&gt;   &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="nb"&gt;file&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;files&lt;/span&gt; :&lt;br /&gt;       &lt;span class="c"&gt;# we list all the files and find the shortcuts .lnk&lt;/span&gt;&lt;br /&gt;    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt;.&lt;span class="n"&gt;search&lt;/span&gt;(&lt;span class="nb"&gt;file&lt;/span&gt;) :&lt;br /&gt;           &lt;span class="c"&gt;# we get the shortcut &lt;/span&gt;&lt;br /&gt;           &lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Win32Shortcut&lt;/span&gt;(&lt;span class="nb"&gt;file&lt;/span&gt;)&lt;br /&gt;           &lt;span class="c"&gt;#we take the target directory of the shortcut&lt;/span&gt;&lt;br /&gt;           &lt;span class="n"&gt;itemPath&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;.&lt;span class="n"&gt;GetPath&lt;/span&gt;(&lt;span class="mi"&gt;0&lt;/span&gt;)[&lt;span class="mi"&gt;0&lt;/span&gt;]&lt;br /&gt;           &lt;span class="c"&gt;#we normalize the path of the shortcut&lt;/span&gt;&lt;br /&gt;           &lt;span class="nb"&gt;file&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;string&lt;/span&gt;.&lt;span class="n"&gt;replace&lt;/span&gt;(&lt;span class="nb"&gt;file&lt;/span&gt;,&lt;span class="s"&gt;'&lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="s"&gt;'&lt;/span&gt;,&lt;span class="s"&gt;'&lt;/span&gt;&lt;span class="se"&gt;\\\\&lt;/span&gt;&lt;span class="s"&gt;'&lt;/span&gt;)&lt;br /&gt;           &lt;span class="c"&gt;# we overwrite the shortcut (same directory, same name).&lt;/span&gt;&lt;br /&gt;           &lt;span class="n"&gt;shortcut&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;shell2&lt;/span&gt;.&lt;span class="n"&gt;CreateShortCut&lt;/span&gt;(&lt;span class="nb"&gt;file&lt;/span&gt;)&lt;br /&gt;           &lt;span class="c"&gt;#we replace the target path (drive = usb drive, path without the drive = itemPath[2:])&lt;/span&gt;&lt;br /&gt;           &lt;span class="n"&gt;shortcut&lt;/span&gt;.&lt;span class="n"&gt;Targetpath&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;  &lt;span class="n"&gt;drive&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;itemPath&lt;/span&gt;[&lt;span class="mi"&gt;2&lt;/span&gt;:]&lt;br /&gt;           &lt;span class="c"&gt;#we set the directory drive&lt;/span&gt;&lt;br /&gt;           &lt;span class="n"&gt;shortcut&lt;/span&gt;.&lt;span class="n"&gt;WorkingDirectory&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;path&lt;/span&gt;&lt;br /&gt;     &lt;span class="c"&gt;#we save the shortcut&lt;/span&gt;&lt;br /&gt;           &lt;span class="n"&gt;shortcut&lt;/span&gt;.&lt;span class="n"&gt;save&lt;/span&gt;()&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;__name__&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s"&gt;"__main__"&lt;/span&gt;:&lt;br /&gt;   &lt;span class="n"&gt;main&lt;/span&gt;()&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://code.activestate.com/recipes/576437/"&gt;Script on the python cookbook&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;   &lt;!-- AddThis Button BEGIN --&gt;&lt;br /&gt;   &lt;a href="http://www.addthis.com/bookmark.php" onclick="addthis_url   = location.href; addthis_title = document.title; return addthis_click(this);" target="_blank"&gt;&lt;img src="http://s9.addthis.com/button1-addthis.gif" alt="Bookmark and Share" border="0" width="125" height="16" /&gt;&lt;/a&gt; &lt;script type="text/javascript"&gt;var addthis_pub = 'bussiere';&lt;/script&gt;&lt;script type="text/javascript" src="http://s9.addthis.com/js/widget.php?v=10"&gt;&lt;/script&gt; &lt;br /&gt;   &lt;!-- AddThis Button END --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4817467572020784234-8734363705551624504?l=onescriptaweek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://onescriptaweek.blogspot.com/feeds/8734363705551624504/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4817467572020784234&amp;postID=8734363705551624504' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4817467572020784234/posts/default/8734363705551624504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4817467572020784234/posts/default/8734363705551624504'/><link rel='alternate' type='text/html' href='http://onescriptaweek.blogspot.com/2008/08/changing-shortcut-on-usb-key-v2_4025.html' title='Changing shortcut on a usb key v2'/><author><name>bussiere</name><uri>http://www.blogger.com/profile/03358445872320058856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
