[prev in list] [next in list] [prev in thread] [next in thread]
List: python-list
Subject: question
From: JYOUNG79 () kc ! rr ! com
Date: 2007-08-24 18:20:24
Message-ID: c54792253f115.3f115c5479225 () rdc-kc ! rr ! com
[Download RAW message or body]
Still trying to learn Python and was hoping some of you might be able to \
give me some advice on my code
below. It works but I'm wondering if there's more efficient ways of doing \
this than the way I've done it.
The first step is I have to loop thru nested folders and find all files \
that start with "LOGO". So I use Unix's 'find'
and write all the paths out to a text file like so:
find ~/Desktop/logoFiles/ -type f -iname "LOGO*" > \
~/Desktop/logo_stuff/paths.txt"
Next, I use Python (code below) to look thru each paragraph of that file \
(paths.txt). While looping thru each
paragraph, I want to first make sure that the folder name that the file is \
in is a number. For example, if it found
file 'LOGO9012', then I'd want to make sure the folder name that this file \
was in was a number (~/Desktop/
logoFiles/12/LOGO9012). If that's ok then I grab the number off the file \
name. If there's not a number in the
file name then I ignore it. I then create a dictionary that has a key \
which equals the number I grabbed from the
file name and then the value contains the full file path (that I grabbed \
out of the text file) followed by a
delimiter (<::>) followed by 'LOGO' and the number I got from the file name \
(making sure to keep any leading
zeroes if they were there originally). Finally, I sort the keys in \
numerical order and save out a file with all the
appropriate info from my dictionary (which will be a list of paths followed \
by a delimiter and file name). Here's
an example of what this new file might contain:
/Users/jyoung1/Desktop/logoFiles/02/Logo002<::>LOGO002
/Users/jyoung1/Desktop/logoFiles/02/LOGO102<::>LOGO102
/Users/jyoung1/Desktop/logoFiles/02/LOGO302<::>LOGO302
/Users/jyoung1/Desktop/logoFiles/9/LOGO462.2PMS<::>LOGO462
Anyway, if anyone has time to look at this I'd appreciate your thoughts. \
Thanks!
Jay
#!/usr/bin/python
import re
dList = {}
sortedList = ""
pathFile = open("~/Desktop/logo_stuff/paths.txt", "r")
for x in pathFile:
if len(re.findall(r"^\d+$", x.split("/")[-2])) > 0: #make sure folder \
name is a number n = re.findall(r"\d+", x.split("/")[-1]) #Grab number \
off file name if len(n) > 0: dList[int(n[0])] = x[:-1] + "<::>LOGO" + n[0] \
+ "\n"
pathFile.close()
keyList = dList.keys()
keyList.sort()
for x in keyList:
sortedList += dList[x]
newFile = open("~/Desktop/logo_stuff/sortedPaths.txt", "w")
newFile.write(sortedList)
newFile.close()
--
http://mail.python.org/mailman/listinfo/python-list
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic