Removing parts of a string field python calculator

7197
7
08-29-2014 12:30 PM
New Contributor II

whats the syntax for removing a specific number of characters from a string.

for example "name.pdf" I want to remove from the right the ".pdf"

Sorry this is a basic question. my searches aren't finding the answer.

Thanks,

Steve

Reply
0 Kudos
7 Replies
Esri Esteemed Contributor

Hi Stephen,

You can use the split method.  Ex:

txt = "name.pdf"

txt.split(".")[0]

This will return 'name'.

New Contributor II

I'll try that one too. I actually used a successful search strip and found another answer.

!Field_name! .rstrip(".pdf")

New Contributor II

Also I was using the field calculator in arcmap. in case that changes anything

Reply
0 Kudos
New Contributor II

Thanks for the replies everyone. much appreciated

Reply
0 Kudos
MVP Esteemed Contributor

or a little more cryptic

>>> txt = "name.pdf"

>>> a = txt[:-4]  #strip off last 4 characters

>>> a

'name'

>>>

the [  ] means that text is whats called an iterable, meaning each character can be cycled through

the [:   means copy everything from the beginning (note the colon after the [ )

the -4] means everything except the last 4 characters (counting from the right)

hence it all means copy the "txt" variable (name.pdf) except the last 4 characters

New Contributor II

Hi Stephen,

it would be easier to to it with Excel using the GISconnector.

In Excel, use search/replace or strip the characters with =right(), =left()...

Best

Matthias

Reply
0 Kudos
MVP Esteemed Contributor

Well whatever Excel can do python can do as well

>>> txt = "name.pdf"

>>> stripped = txt.rstrip(".pdf")

>>> stripped

'name'

>>>

Reply
0 Kudos