Solved

Check to see if files exist and download files within Python

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

Ransomware-A Revenue Bonanza for Service Providers

Ransomware – malware that gets on your customers’ computers, encrypts their data, and extorts a hefty ransom for the decryption keys – is a surging new threat.  The purpose of this eBook is to educate the reader about ransomware attacks.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
VMWare 6 crashing 14 98
Cassandra Select Query 1 56
Issue with SFTP on non-root account using Guacamole  / GUAC 2 66
Python 3.5.2 32 virtualenv problems 3 13
A set of related code is known to be a Module, it helps us to organize our code logically which is much easier for us to understand and use it. Module is an object with arbitrarily named attributes which can be used in binding and referencing. …
The purpose of this article is to demonstrate how we can upgrade Python from version 2.7.6 to Python 2.7.10 on the Linux Mint operating system. I am using an Oracle Virtual Box where I have installed Linux Mint operating system version 17.2. Once yo…
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…
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.:

895 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

11 Experts available now in Live!

Get 1:1 Help Now