[Tutor] renaming files within a directory
Kent Johnson
kent37 at tds.net
Mon Jul 27 13:01:32 CEST 2009
On Mon, Jul 27, 2009 at 5:10 AM, <davidwilson at safe-mail.net> wrote:
> files = set([file for file in os.listdir(os.getcwd()) if file.endswith('svg')])
> print len(files)
>
> for file in files:
> file = file.strip('.svg')
> print file
> # if countries.has_key(file):
> # print file
>
> When I run this I get:
>
> Flag_of_Uganda
> ...
>
> The problem is that for example the file Flag_of_the_United_States.svg when I use the strip('.svg') it is returned as Flag_of_the_United_State
>
> Also, How do I remove 'Flag_of', 'Flag_of_the_'
I suggest you use glob.glob() instead of os.listdir():
files = glob.glob('Flag_of_*.svg)
Then you know that each file name starts with Flag_of_ and ends with
.svg. To remove them, since they are fixed strings you can just use
slicing;
file = file[8:-4]
if file.startswith('the_'):
file = file[4:]
Kent
More information about the Tutor
mailing list