Solved

Check to see if files exist and download files within Python

Posted on 2007-12-04
3
2,775 Views
Last Modified: 2010-08-05
Hello,

I wish to be able to check (in a python script) to see if a file and/or folder already exists on a users hard drive, and if it doesn't exist, download a file from (using the http protocol) online, with the same name that is being checked, into the folder that has been checked.

Also, if the folder that I wish to download into doesn't exist, I would like to create it.

Currently, I am using a very hackish method, as I am on Linux, I am effectively running commands using "os.popen" to create the directory I wish using mkdir (though it cannot check to see if it already exists), and wget to download it into the file.

I wish to make this program/script as cross platform as possible, which means I need to avoid using these, meaning I need to be able to do it within Python.

If there is a way to do it within Python, but only for a specific platform, I am working on Linux, so I need it to be able to at least work on that.

Thank you for your help!
0
Comment
Question by:dh-s
  • 2
3 Comments
 
LVL 9

Accepted Solution

by:
ghostdog74 earned 350 total points
ID: 20408600
>>> I wish to be able to check (in a python script) to see if a file and/or folder already exists on a users hard drive, download a file from (using the http protocol) online, with the same name that is being checked, into the folder that has been checked.

import os,urllib2
file = "myfile"
folder = "/myfolder"
if not os.path.exists(folder) : os.mkdir(folder,0777)
if not os.path.exists(file):
    ##do download
    page= "http://somewhere"
    result = urllib2.urlopen(page).read() #please check syntax
    open(os.path.join(myfolder,file),"w").write(result)

note: not tested. just to give an idea
0
 

Author Comment

by:dh-s
ID: 20408662
HI,

"os.path.exists(folder)" to check if the folder/file exists works fine! Thanks.

Unfortuantly, urllib2 does not: [see code snippet]

Do you know where I can get the urllib2 module? As I looked in the Python documentation, and it does exist, but I can't work out where I can get it from to include it with my program/script, or get the user to install it.

Thanks!

>>> import os.urllib2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named urllib2

Open in new window

0
 

Author Closing Comment

by:dh-s
ID: 31412769
I got the problem I had with the comment below fixed:

I mis-read what you had written, and didn't see that it was a comma, not a full stop (in import os,urllib2). It works when that is fixed, thanks!
0

Featured Post

Master Your Team's Linux and Cloud Stack!

The average business loses $13.5M per year to ineffective training (per 1,000 employees). Keep ahead of the competition and combine in-person quality with online cost and flexibility by training with Linux Academy.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Steps to follow for Maintenance of Servers 4 64
yara deployment 8 61
Setting up static IP - Ubuntu server 16.04 12 64
Python 3.5.2 32 virtualenv problems 3 38
Variable is a place holder or reserved memory locations to store any value. Which means whenever we create a variable, indirectly we are reserving some space in the memory. The interpreter assigns or allocates some space in the memory based on the d…
I. Introduction There's an interesting discussion going on now in an Experts Exchange Group — Attachments with no extension (http://www.experts-exchange.com/discussions/210281/Attachments-with-no-extension.html). This reminded me of questions tha…
Learn the basics of while and for loops in Python.  while loops are used for testing while, or until, a condition is met: The structure of a while loop is as follows:     while <condition>:         do something         repeate: The break statement m…
Learn several ways to interact with files and get file information from the bash shell. ls lists the contents of a directory: Using the -a flag displays hidden files: Using the -l flag formats the output in a long list: The file command gives us mor…

810 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question