Lanny wrote:
Well the othe day I was making a program to make a list of all the songs in
certian directorys but I got a problem, only one of the directorys was added
to the list. Heres my code:
import random
import os
import glob
songs = glob.glob('C:\Documents and Settings\Admin\My
Documents\LimeWire\Saved\*.mp3')
asongs = glob.glob('C:\Documents and Settings\Admin\My
Documents\Downloads\*\*.mp3')
songs.append(asongs)
asongs = glob.glob('C:\Documents and Settings\Admin\My
Documents\Downloads\*\*\*.mp3')
songs.append(asongs)
asongs = glob.glob('C:\Documents and Settings\Admin\My
Documents\Downloads\*\*\*\*.mp3')
songs.append(asongs)
pick = random.choice(songs)
all goes well but pick awalys is from the first directory but songs awalys
includes all the files I want it to. Im baffaled.
-- Posted on news://freenews.netfront.net - Complaints to [EMAIL PROTECTED] --
1) You need to either use raw string for your pathnames or use forward slashes.
This is because backslash is an escape character to Python and if you get any
legal escaped sequence (like \n, \t, etc) it won't work as expected.
songs = glob.glob(r'C:\Documents and Settings\Admin\My
Documents\LimeWire\Saved\*.mp3')
or
songs = glob.glob('C:/Documents and Settings/Admin/My
Documents/LimeWire/Saved/*.mp3')
Yes, forward slashes work just fine on windows.
2) When you have a list (songs) and append another list (asongs) you don't get a
combined list, you get a list with the last element being the second list.
example:
>>> songs = [1,2,3]
>>> asongs = [4,5,6]
>>> songs.append(asongs)
>>> songs
[1, 2, 3, [4, 5, 6]]
>>>
What you wanted was songs.extend(asongs). BTW-Inserting a couple of print
statements would have shown you this problem pretty quickly.
-Larry
--
http://mail.python.org/mailman/listinfo/python-list