Solved

Check to see if files exist and download files within Python

Posted on 2007-12-04
3
2,773 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
Comment Utility
>>> 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
Comment Utility
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
Comment Utility
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

Highfive + Dolby Voice = No More Audio Complaints!

Poor audio quality is one of the top reasons people don’t use video conferencing. Get the crispest, clearest audio powered by Dolby Voice in every meeting. Highfive and Dolby Voice deliver the best video conferencing and audio experience for every meeting and every room.

Join & Write a Comment

Article by: Swadhin
Introduction of Lists in Python: There are six built-in types of sequences. Lists and tuples are the most common one. In this article we will see how to use Lists in python and how we can utilize it while doing our own program. In general we can al…
When we want to run, execute or repeat a statement multiple times, a loop is necessary. This article covers the two types of loops in Python: the while loop and the for loop.
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…
Learn how to find files with the shell using the find and locate commands. Use locate to find a needle in a haystack.: With locate, check if the file still exists.: Use find to get the actual location of the file.:

762 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

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now