CRP
CRP

Reputation: 9

Replace part of the list element

I have a list variable which has elemnts like below: ['Cordial/contactactivity/export/bounce/0-ContactActivity-bounce-20211109-131121.csv', 'Cordial/contactactivity/export/bounce/0-ContactActivity-bounce-20211109-131150.csv', 'Cordial/contactactivity/export/bounce/0-ContactActivity-bounce-20211109-131160.csv', 'Cordial/contactactivity/export/bounce/0-ContactActivity-bounce-20211109-131169.csv', 'Cordial/contactactivity/export/bounce/0-ContactActivity-bounce-20211109-131189.csv']

This is file name with file path in it. Want to build a list with only file name, how can i do that? Output should be:

['bounce-20211109-131121.csv', 'bounce-20211109-131150.csv', 'bounce-20211109-131160.csv', 'bounce-20211109-131169.csv', 'bounce-20211109-131189.csv'] ie strip out string 'Cordial/contactactivity/export/bounce/0-ContactActivity-'

Upvotes: 0

Views: 61

Answers (1)

Rafael Barros
Rafael Barros

Reputation: 2881

You can use os.path.basename (docs here) and get the last segment. Then you just need to trim the part you don't want.

import os
data = [
    'Cordial/contactactivity/export/bounce/0-ContactActivity-bounce-20211109-131121.csv', 
    'Cordial/contactactivity/export/bounce/0-ContactActivity-bounce-20211109-131150.csv',
    'Cordial/contactactivity/export/bounce/0-ContactActivity-bounce-20211109-131160.csv',
    'Cordial/contactactivity/export/bounce/0-ContactActivity-bounce-20211109-131169.csv',
    'Cordial/contactactivity/export/bounce/0-ContactActivity-bounce-20211109-131189.csv'
]
data = [os.path.basename(i).replace('0-ContactActivity-', '') for i in data]

resulting in:

>>> data
['bounce-20211109-131121.csv', 'bounce-20211109-131150.csv', 'bounce-20211109-131160.csv', 'bounce-20211109-131169.csv', 'bounce-20211109-131189.csv']

Upvotes: 3

Related Questions