i am using glob.glob('') function to get a list of all files from a folder. I need to get only those names which do not contain '_ab' in it. How is it possible. I understand the need for regular expressions here. i tried (?!....) . what should work here.


example :

x = glob.glob('c:\temp\*ab*')
this returns all files containing ab in it. What should i write here so that it returns only those that do not contain ab in it

Brgds,

kNish

Recommended Answers

All 4 Replies

i am using glob.glob('') function to get a list of all files from a folder. I need to get only those names which do not contain '_ab' in it. How is it possible. I understand the need for regular expressions here. i tried (?!....) . what should work here.


example :

x = glob.glob('c:\temp\*ab*')
this returns all files containing ab in it. What should i write here so that it returns only those that do not contain ab in it

Brgds,

kNish

You can use a list comprehension to exclude files with '_ab' in the names.

x = [f for f in glob.glob('c:\temp\*.*') if '_ab' not in f]

Hi,

thank you for that thought. It worked. It had this change in it.

x = [f for f in glob.glob('e:\\test\\*.*') if '_ab' not in f]
print len(x)


x = [f for f in glob.glob('e:\\test\\*.*') if '_ab' in f]
print len(x)


BRgds,

kNish

Is it solved? If yes then don't hesitate to mark it solved!

Have good time with py!

without glob module, just search for it

import os
os.chdir("/somewhere")
for files in os.listdir("."):
    if not "_ab" in files:
        print files
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.