Selecting and removing particular objects I have a script that takes in positional data and creates a cube based on their positions. Each time I run the script, I've noticed that the old cubes are still showing up in the User Perspective. It's a pain to go through each cube and manually delete them.

I've googled for a while to find a solution to no avail. I know that 

for ob in bpy.data.objects:


Allows me to iterate through the objects in the scene. I get

Camera
Cube
Cube.001
Cube.002
...


but I don't know how to use the API to select only cubes to remove and I don't know how to remove them. Is unlinking the same thing as removing the cubes from the user perspective?
This should do the trick, first iterate through everything in your scene, next check if it is as mesh and check if it is a cube (by name using the first 4 chars), then remove it. Also, make sure you are in object mode when running the script.

import bpy

scene = bpy.context.scene

for ob in scene.objects:
    if ob.type == 'MESH' and ob.name.startswith("Cube"):
        ob.select = True
    else: 
        ob.select = False

bpy.ops.object.delete()


Unlinking an object from a scene does not remove it entirely.



Condensed version of the same script thanks to CoDEmanX.

import bpy    
for ob in bpy.context.scene.objects:
    ob.select = ob.type == 'MESH' and ob.name.startswith("Cube")
bpy.ops.object.delete()