'extract path name based on a string
Below is my worked examples:
from itertools import zip_longest
test2 = ['register/adam/users_photo3.jpg', 'register/adam/users_photo4.jpg',
'register/justin/users_photo1.jpg', 'register/justin/users_photo2.jpg',
'register/adam/users_photo3.jpg', 'register/adam/users_photo4.jpg',
'register/justin/users_photo1.jpg', 'register/justin/users_photo2.jpg',
'register/steve/users_photo1.jpg', 'register/steve/users_photo2.jpg',
'register/justin/users_photo1.jpg', 'register/justin/users_photo2.jpg',
'register/steve/users_photo1.jpg', 'register/steve/users_photo2.jpg',
'register/justin/users_photo1.jpg', 'register/justin/users_photo2.jpg']
test = ["justin","adam"]
filter_list = []
for p,q in zip_longest(test,list_of_files):
for r in list_of_files:
if str(p) in r:
filter_list.append(r)
testmain=[p for p,r in zip_longest(test2,filter_list) if str(r) not in str(p)]
print(testmain)
I want the opposite output url of test. example "steve" url needed as output ! Needed output: All steve urls needed in output.
Hope I clarified myself and I get some response, Thank you.
Solution 1:[1]
I would use a list comprehension along with re.search:
test2 = ['register/adam/users_photo3.jpg',
'register/adam/users_photo4.jpg',
'register/justin/users_photo1.jpg',
'register/justin/users_photo2.jpg',
'register/adam/users_photo3.jpg',
'register/adam/users_photo4.jpg',
'register/justin/users_photo1.jpg',
'register/justin/users_photo2.jpg',
'register/steve/users_photo1.jpg',
'register/steve/users_photo2.jpg',
'register/justin/users_photo1.jpg', 'register/justin/users_photo2.jpg',
'register/steve/users_photo1.jpg', 'register/steve/users_photo2.jpg',
'register/justin/users_photo1.jpg', 'register/justin/users_photo2.jpg']
test = ["justin", "adam"]
regex = r'/(?:' + '|'.join(test) + r')/'
output = [x for x in test2 if not re.search(regex, x)]
print(output)
This prints:
['register/steve/users_photo1.jpg', 'register/steve/users_photo2.jpg',
'register/steve/users_photo1.jpg', 'register/steve/users_photo2.jpg']
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Tim Biegeleisen |
