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