Delete string after character python

I have a string. How do I remove all text after a certain character? (In this case ...)
The text after will ... change so I that's why I want to remove all characters after a certain one.

Delete string after character python

wjandrea

24.5k8 gold badges53 silver badges73 bronze badges

asked May 24, 2009 at 21:56

0

Split on your separator at most once, and take the first piece:

sep = '...'
stripped = text.split(sep, 1)[0]

You didn't say what should happen if the separator isn't present. Both this and Alex's solution will return the entire string in that case.

Delete string after character python

wjandrea

24.5k8 gold badges53 silver badges73 bronze badges

answered May 24, 2009 at 22:01

Ned BatchelderNed Batchelder

351k71 gold badges551 silver badges649 bronze badges

4

Assuming your separator is '...', but it can be any string.

text = 'some string... this part will be removed.'
head, sep, tail = text.partition('...')

>>> print head
some string

If the separator is not found, head will contain all of the original string.

The partition function was added in Python 2.5.

S.partition(sep) -> (head, sep, tail)

Searches for the separator sep in S, and returns the part before it, the separator itself, and the part after it. If the separator is not found, returns S and two empty strings.

Delete string after character python

wjandrea

24.5k8 gold badges53 silver badges73 bronze badges

answered May 24, 2009 at 22:02

Ayman HouriehAyman Hourieh

125k22 gold badges140 silver badges115 bronze badges

5

If you want to remove everything after the last occurrence of separator in a string I find this works well:

<separator>.join(string_to_split.split(<separator>)[:-1])

For example, if string_to_split is a path like root/location/child/too_far.exe and you only want the folder path, you can split by "/".join(string_to_split.split("/")[:-1]) and you'll get root/location/child

answered Sep 14, 2015 at 22:18

theannouncertheannouncer

1,08115 silver badges26 bronze badges

1

Without a regular expression (which I assume is what you want):

def remafterellipsis(text):
  where_ellipsis = text.find('...')
  if where_ellipsis == -1:
    return text
  return text[:where_ellipsis + 3]

or, with a regular expression:

import re

def remwithre(text, there=re.compile(re.escape('...')+'.*')):
  return there.sub('', text)

Delete string after character python

wjandrea

24.5k8 gold badges53 silver badges73 bronze badges

answered May 24, 2009 at 22:00

Alex MartelliAlex Martelli

823k163 gold badges1202 silver badges1379 bronze badges

3

import re
test = "This is a test...we should not be able to see this"
res = re.sub(r'\.\.\..*',"",test)
print(res)

Output: "This is a test"

answered Feb 26, 2020 at 14:12

Delete string after character python

MarcusMarcus

691 silver badge4 bronze badges

1

From a file:

import re
sep = '...'

with open("requirements.txt") as file_in:
    lines = []
    for line in file_in:
        res = line.split(sep, 1)[0]
        print(res)

answered Mar 19, 2020 at 23:42

Delete string after character python

The method find will return the character position in a string. Then, if you want remove every thing from the character, do this:

mystring = "123⋯567"
mystring[ 0 : mystring.index("⋯")]

>> '123'

If you want to keep the character, add 1 to the character position.

answered Jun 18, 2020 at 2:42

Delete string after character python

This is in python 3.7 working to me In my case I need to remove after dot in my string variable fees

fees = 45.05
split_string = fees.split(".", 1)

substring = split_string[0]

print(substring)

answered Mar 3, 2021 at 10:54

Delete string after character python

Ganesan JGanesan J

3835 silver badges9 bronze badges

Yet another way to remove all characters after the last occurrence of a character in a string (assume that you want to remove all characters after the final '/').

path = 'I/only/want/the/containing/directory/not/the/file.txt'

while path[-1] != '/':
    path = path[:-1]

answered May 25, 2021 at 22:18

1

another easy way using re will be

import re, clr

text = 'some string... this part will be removed.'

text= re.search(r'(\A.*)\.\.\..+',url,re.DOTALL|re.IGNORECASE).group(1)

// text = some string

Delete string after character python

answered May 20, 2015 at 10:42

1

How do you remove a string after a character in Python?

To remove everything after a character in a string:.
Use the str. split() method to split the string on the separator..
Access the list element at index 0 to get everything before the separator..
Optionally, use the addition (+) operator to add the separator..

How do I remove a string after a character?

Use the String. slice() method to remove everything after a specific character, e.g. const removed = str. slice(0, str. indexOf('[')); .

How do you delete text before a specific character in Python?

To remove everything before the first occurrence of the character '-' in a string, pass the character '-' as separator and 1 as the max split value. The split('-', 1) function will split the string into 2 parts, Part 1 should contain all characters before the first occurrence of character '-'.

How do you remove a string from a string in Python?

In Python you can use the replace() and translate() methods to specify which characters you want to remove from a string and return a new modified string result. It is important to remember that the original string will not be altered because strings are immutable.