Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > Glob returning an empty list when passed a variable

Reply
Thread Tools

Glob returning an empty list when passed a variable

 
 
Neil Webster
Guest
Posts: n/a
 
      02-09-2007
Hi,

I was wondering whether anybody could help me out.

I have a program, for part of it I am trying to pass a variable to a
glob function, this returns an empty list. The strange thing is when
I hard code in the variable the glob section works.

Does anybody have any ideas as why it is not working?

The section of code that is not working is:

# The variable to be passed to the glob function
area_name_string = '"*% s*"' % (Area_name)

os.chdir(Input)

filename = glob.glob(area_name_string)

Thanks in advance

Neil

 
Reply With Quote
 
 
 
 
Philipp Pagel
Guest
Posts: n/a
 
      02-09-2007
Neil Webster <> wrote:

> area_name_string = '"*% s*"' % (Area_name)
> os.chdir(Input)
> filename = glob.glob(area_name_string)


Too many quotation marks.

>>> Area_name='Foo'
>>> '"*% s*"' % (Area_name)

'"*Foo*"'

Unless there are files with funny names containing '"' you will not get a
match.

cu
Philipp

--
Dr. Philipp Pagel Tel. +49-8161-71 2131
Dept. of Genome Oriented Bioinformatics Fax. +49-8161-71 2186
Technical University of Munich
http://mips.gsf.de/staff/pagel
 
Reply With Quote
 
 
 
 
Steve Holden
Guest
Posts: n/a
 
      02-09-2007
Neil Webster wrote:
> Hi,
>
> I was wondering whether anybody could help me out.
>
> I have a program, for part of it I am trying to pass a variable to a
> glob function, this returns an empty list. The strange thing is when
> I hard code in the variable the glob section works.
>
> Does anybody have any ideas as why it is not working?
>
> The section of code that is not working is:
>
> # The variable to be passed to the glob function
> area_name_string = '"*% s*"' % (Area_name)
>
> os.chdir(Input)
>
> filename = glob.glob(area_name_string)
>
> Thanks in advance


Because you are trying to match filenames that have a double-quote
character at the start and end? Try

area_name_string = '*% s*' % (Area_name)

Interesting, I never realised until now that you can have spaces between
the percent sign and th format effector.

regards
Steve
--
Steve Holden +44 150 684 7255 +1 800 494 3119
Holden Web LLC/Ltd http://www.holdenweb.com
Skype: holdenweb http://del.icio.us/steve.holden
Blog of Note: http://holdenweb.blogspot.com
See you at PyCon? http://us.pycon.org/TX2007

 
Reply With Quote
 
Neil Webster
Guest
Posts: n/a
 
      02-09-2007
On 9 Feb, 14:15, Steve Holden <s...@holdenweb.com> wrote:
> Neil Webster wrote:
> > Hi,

>
> > I was wondering whether anybody could help me out.

>
> > I have a program, for part of it I am trying to pass a variable to a
> > glob function, this returns an empty list. The strange thing is when
> > I hard code in the variable the glob section works.

>
> > Does anybody have any ideas as why it is not working?

>
> > The section of code that is not working is:

>
> > # The variable to be passed to the glob function
> > area_name_string = '"*% s*"' % (Area_name)

>
> > os.chdir(Input)

>
> > filename = glob.glob(area_name_string)

>
> > Thanks in advance

>
> Because you are trying to match filenames that have a double-quote
> character at the start and end? Try
>
> area_name_string = '*% s*' % (Area_name)
>
> Interesting, I never realised until now that you can have spaces between
> the percent sign and th format effector.
>
> regards
> Steve
> --
> Steve Holden +44 150 684 7255 +1 800 494 3119
> Holden Web LLC/Ltd http://www.holdenweb.com
> Skype: holdenweb http://del.icio.us/steve.holden
> Blog of Note: http://holdenweb.blogspot.com
> See you at PyCon? http://us.pycon.org/TX2007- Hide quoted text -
>
> - Show quoted text -


Steve and Philipp,

Thanks very much for the promptness of the reply and providing the
answer.

Steve, it appears to work so I left it, should it not be possible?

Regards

Neil

 
Reply With Quote
 
Steven D'Aprano
Guest
Posts: n/a
 
      02-09-2007
On Fri, 09 Feb 2007 14:15:51 +0000, Steve Holden wrote:

> area_name_string = '*% s*' % (Area_name)
>
> Interesting, I never realised until now that you can have spaces between
> the percent sign and th format effector.


Space is one of the flags. From the docs:


The conversion flag characters are:

Flag Meaning
# The value conversion will use the ``alternate form'' (where defined
below).
0 The conversion will be zero padded for numeric values.
- The converted value is left adjusted (overrides the "0" conversion if
both are given).
(a space) A blank should be left before a positive number (or empty
string) produced by a signed conversion.
+ A sign character ("+" or "-") will precede the conversion (overrides a
"space" flag).


http://docs.python.org/lib/typesseq-strings.html



--
Steven.

 
Reply With Quote
 
Steve Holden
Guest
Posts: n/a
 
      02-10-2007
Steven D'Aprano wrote:
> On Fri, 09 Feb 2007 14:15:51 +0000, Steve Holden wrote:
>
>> area_name_string = '*% s*' % (Area_name)
>>
>> Interesting, I never realised until now that you can have spaces between
>> the percent sign and th format effector.

>
> Space is one of the flags. From the docs:
>
>
> The conversion flag characters are:
>
> Flag Meaning
> # The value conversion will use the ``alternate form'' (where defined
> below).
> 0 The conversion will be zero padded for numeric values.
> - The converted value is left adjusted (overrides the "0" conversion if
> both are given).
> (a space) A blank should be left before a positive number (or empty
> string) produced by a signed conversion.
> + A sign character ("+" or "-") will precede the conversion (overrides a
> "space" flag).
>
>
> http://docs.python.org/lib/typesseq-strings.html
>
>>> "% s" % 'banana'

'banana'
>>> "% s" % 1

'1'
>>> "% s" % -1

'-1'
>>>


Since it appears non-operative in the case of strings I'd be tempted to
leave it out, though my original post was triggered by my surprise that
I'd not seen the feature before. There are no limits to my ignorance

regards
Steve
--
Steve Holden +44 150 684 7255 +1 800 494 3119
Holden Web LLC/Ltd http://www.holdenweb.com
Skype: holdenweb http://del.icio.us/steve.holden
Blog of Note: http://holdenweb.blogspot.com
See you at PyCon? http://us.pycon.org/TX2007

 
Reply With Quote
 
Hieu.D.Hoang@gmail.com
Guest
Posts: n/a
 
      02-10-2007
On Feb 10, 3:32 pm, Steve Holden <s...@holdenweb.com> wrote:
>
> >>> "% s" % 'banana'

> 'banana'
> >>> "% s" % 1

> '1'
> >>> "% s" % -1

> '-1'
> >>>

>


With some number:

In [2]: "% 3s" % 'a'
Out[2]: ' a'

Hieu

 
Reply With Quote
 
Marc 'BlackJack' Rintsch
Guest
Posts: n/a
 
      02-10-2007
In < .com>,
wrote:

> With some number:
>
> In [2]: "% 3s" % 'a'
> Out[2]: ' a'


The space still doesn't have any effect here:

In [66]: "%3s" % 'a'
Out[66]: ' a'

Ciao,
Marc 'BlackJack' Rintsch
 
Reply With Quote
 
MRAB
Guest
Posts: n/a
 
      02-10-2007
On Feb 10, 8:32 am, Steve Holden <s...@holdenweb.com> wrote:
> Steven D'Aprano wrote:
> > On Fri, 09 Feb 2007 14:15:51 +0000, Steve Holden wrote:

>
> >> area_name_string = '*% s*' % (Area_name)

>
> >> Interesting, I never realised until now that you can have spaces between
> >> the percent sign and th format effector.

>
> > Space is one of the flags. From the docs:

>
> > The conversion flag characters are:

>
> > Flag Meaning
> > # The value conversion will use the ``alternate form'' (where defined
> > below).
> > 0 The conversion will be zero padded for numeric values.
> > - The converted value is left adjusted (overrides the "0" conversion if
> > both are given).
> > (a space) A blank should be left before a positive number (or empty
> > string) produced by a signed conversion.
> > + A sign character ("+" or "-") will precede the conversion (overrides a
> > "space" flag).

>
> >http://docs.python.org/lib/typesseq-strings.html

>
> >>> "% s" % 'banana'

> 'banana'
> >>> "% s" % 1

> '1'
> >>> "% s" % -1

> '-1'
> >>>

>

[snip]
I've just tried it and it works for the "d" format but not the "s"
format:

>>> "%d" % 1

'1'
>>> "%+d" % 1

'+1'
>>> "% d" % 1

' 1'

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
glob.glob unicode bug or feature Elbert Lev Python 5 08-02-2004 12:09 AM
Question about glob.glob <--newbie Sean Berry Python 3 05-04-2004 05:34 PM
RE: Bug in glob.glob for files w/o extentions in Windows Tim Peters Python 1 12-01-2003 09:22 AM
Bug in glob.glob for files w/o extentions in Windows Georgy Pruss Python 15 12-01-2003 04:04 AM
variable file glob into grep without glob() qanda Perl Misc 1 09-15-2003 08:27 AM



Advertisments
 



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57