473,769 Members | 5,131 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

ls files --> list packer

I would like to use the power of Python to build some list structures
for me.

Namely i have organized a bunch of folders that have soundfiles in them
and would like Python to slurp up all the .aif/.aiff (or .wav whatever)
files in a given set of directories. My friend hacked up this is perl:

$files = `ls /snd/Public/*.aiff`;

@snd_filelist = split('\n',$fil es);

$i = 0;
while ($file = @snd_filelist[$i]) {
print "file $i = @snd_filelist[$i]\n";
$i++;
}
The only catch with the above code (besides its hideousness hee hee) is
if you have a directory w/i the structure, but in general it works and
with this i can just put gobs of files into separate dirs pack them
into a list and then send them to my script that scrambles them and
plays them.

I would like something similar, that works with python that is more
elegant and maybe even more robust.

but i am failing miserably and my perl friends mock me.

cheers,
kp8

Feb 24 '06
14 2925
kpp9c wrote:
os.listdir works great ... just one problem, it packs the filenames
only into a list... i need the full path and seach as i might i se NO
documentation on python.org for os.listdir()
Docs for os.listdir() are here:
http://docs.python.org/lib/os-file-dir.html

When all else fails try the index:
http://docs.python.org/lib/genindex.html
how do i either grab the full path or append it later ...


Use os.path.join():

base = '/some/useful/path'
for f in os.listdir(base ):
full_path_to_fi le = os.path.join(ba se, f)

Kent
Feb 27 '06 #11
Thank you... i was looking in the wrong place cause all i found was
this relatively useless doc:

http://docs.python.org/lib/module-os.html

which says almost nothing.

Feb 27 '06 #12
nice! two little lines that do a boatload of work! hee hee

----
pth = '/Users/kpp9c/snd/01'
samples = [os.path.join(pt h, f) for f in os.listdir(pth) if
f.endswith('.ai f')]
----

thank you Kent! (and Jeremy and Magnus and Singletoned and I V ... and
john boy and mary ellen .. )

Feb 27 '06 #13
kpp9c wrote:
Thank you... i was looking in the wrong place cause all i found was
this relatively useless doc:
http://docs.python.org/lib/module-os.html
which says almost nothing.

In one of its subsections, cleverly named "Files and Directories",
I see a nice description of listdir.

http://docs.python.org/lib/os-file-dir.html

You also might want to read about os.walk in the same page.
In the os.path module you can see more path name manipulations.
If you intend to know a language, you should read its manuals
fast; what you want is a vague impression where information
lives and what information is there. Maybe half a year later
do it again. After that every couple of years often suffices.
At the very least, go through the full tutorial, read docs on
the "obvious" modules for everyone and for your particular
area of endeavor, and then on a snacking basis get yourself
through the rest unless you decide that you never want to deal
with, for example, unix-specific services or internet protocols.

Don't expect to acquire _any_ language with "just in time" (JIT)
techniques. Perhaps JIT works for magic. When you acquire a
language with JIT, you miss the subtleties of the language.
You will be doomed to writing the same kinds of programs in every
language you touch ("writing Fortran in Algol" is what we used to
call it). I've worked on code that was Java-in-Python, and it was
frustratingly hard to understand.

--Scott David Daniels
sc***********@a cm.org
Feb 27 '06 #14
kpp9c wrote:
that is nice.... but the little further wrinkle, which i have no idea
how to do, would be to have the contents of each directory packed into
a different list.... since you have no idea before hand how many lists
you will need (how many subdirs you will enounter) ... well that is
where the hairy part comes in...


What's the problem? If you'll get an unknown bundle of objects in a
program, you just put them in a container. A list or a dict will do
fine. Have a look at the Python tutorial.

You get a file list for each directory from os.walk. You either keep
a list called "directorie s" and for each turn in the loop, you do
"directories.ap pend((dir, sound_files))", or you have a dict called
"directorie s", and do "directorie s[dir] = sound_files" in the loop.

Something like this untested code:

def isSoundFile(x):
# home work

dirs = {}
root = raw_input('star t directory')
for dir, dummy, files in os.walk(root):
dirs[dir] = [x for x in files if isSoundFile(x)]

for dir in sorted(dirs):
print dir
for fn in dirs[dir]:
print "\t", fn
print
Feb 27 '06 #15

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

0
1080
by: Grant Edwards | last post by:
Could whoever is gatewaying this group to a mailing list PLEASE fix whatever problem is causing Usenet posters to receive bounce messages and out-of-office messages from subscribers to your service? When I post an article to Usenet _I_DONT_CARE_ if your gateway has problems mailing that article to somebody. I DON'T WANT TO BE NOTIFIED that somebody I've never heard of in Poland is out of his office and that somebody else in Slovakia...
10
1406
by: jamesthiele.usenet | last post by:
I wrote this little piece of code to get a list of relative paths of all files in or below the current directory (*NIX): walkList = , x) for x in os.walk(".")] filenames = for dir, files in walkList: filenames.extend() for f in files]) It works fine, I don't need to change it, but I know there is a one liner list/generator comprehension to do this - I'm just not well
8
53691
by: dp | last post by:
Is there anyway to have the bullet color of a <li> be a different color than the text without using an image? dp
5
2203
by: Konrad L. M. Rudolph | last post by:
I hope this is the right NG, please notify me if not. I have got a problem with the "recent files" list of the start page in VS.NET: yesterday I created a new projekt which has the same name as an already existing project stored at another location. Unfortunately, VS.NET doesn't seem to support double names in the "recent files" list: only /one/ entry with the double name is listed and even more unfortunate, it is the one which I don't...
3
3175
by: Michael | last post by:
X-Replace-Address Hello, I am trying to write a program at work for reading/writing files larger than 4 GB. I know that Windows supports files that big but I have not been able to get my program to write past the 4 gig boundary. Some solutions that I have tried:
3
1550
by: Gregor Horvath | last post by:
Hi, given the dynamic nature of python I assume that there is an elegant solution for my problem, but I did not manage to find it. I have a file that contains for example on line: when I read the file
4
2368
by: VK | last post by:
I'm looking for autoexpand <select> list onfocus and collapse it back onselect/onblur (the list is select-one type) I know it is not possible directly, but I've seen here a hack by changing dynamically position static/absolute and sel.size - cannot google it out though. Also some GNU/copyleft widget would be equally great.
4
3740
by: zacks | last post by:
Most applications whose purpose is to work with various types of files implement a "Most Recent Files" list, where the last, say, four files accessed by the application can quickly be re-opened by clicking on the file name in the File menu. Thist list is usually just above the typical Exit menu item. I take it there is no "automatic" way of implementing this, that each application has to have code that manually does this. I have a good...
1
2972
by: jollyguy77 | last post by:
Hi, I have just started to learn in .net. I want to show a list of filename along with the corresponding image (like pdf image for pdf files etc..). i will be getting the list of files from database. I want to show the files in list view format and also give the option for the user to change the view to details or thumbnail or icons accordingly.. also to give the option for renaming or deleting a file. I know that there is a Listview...
0
9423
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
10210
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
1
9990
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
9860
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
8869
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
0
6668
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
5297
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
1
3955
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
3
2814
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.