?
Solved

Check to see if files exist and download files within Python

Posted on 2007-12-04
3
Medium Priority
?
2,798 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 1400 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

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Question has a verified solution.

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

It’s 2016. Password authentication should be dead — or at least close to dying. But, unfortunately, it has not traversed Quagga stage yet. Using password authentication is like laundering hotel guest linens with a washboard — it’s Passé.
Often times it's very very easy to extend a volume on a Linux instance in AWS, but impossible to shrink it. I wanted to contribute to the experts-exchange community a way of providing a procedure that works on an AWS instance. It can also be used on…
Learn the basics of strings in Python: declaration, operations, indices, and slicing. Strings are declared with quotations; for example: s = "string": Strings are immutable.: Strings may be concatenated or multiplied using the addition and multiplic…
Learn the basics of modules and packages in Python. Every Python file is a module, ending in the suffix: .py: Modules are a collection of functions and variables.: Packages are a collection of modules.: Module functions and variables are accessed us…
Suggested Courses
Course of the Month12 days, 23 hours left to enroll

578 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