Can you strip \n in python?

This is my problem.

I'm trying to read a text file and then convert the lines into floats. The text file has \n and \t in it though I don't know how to get rid of it.

I tried using line.strip() but it didn't take it off and I got an error when I wanted to convert the stuff to floats. I then tried line.strip("\n") but that didn't work either. My program works fine when I take out the \t and \n from the text file, but it's part of the assignment to get it to work with them.

I really don't know why this isn't working. Thanks for any help.

John Machin

79.3k11 gold badges137 silver badges182 bronze badges

asked Feb 19, 2012 at 7:07

5

You should be able to use line.strip('\n') and line.strip('\t'). But these don't modify the line variable...they just return the string with the \n and \t stripped. So you'll have to do something like

line = line.strip('\n')
line = line.strip('\t')

That should work for removing from the start and end. If you have \n and \t in the middle of the string, you need to do

line = line.replace('\n','')
line = line.replace('\t','')

to replace the \n and \t with nothingness.

answered Feb 19, 2012 at 7:17

Can you strip n in python?

austin1howardaustin1howard

4,6853 gold badges19 silver badges22 bronze badges

3

The strip() method removes whitespace by default, so there is no need to call it with parameters like '\t' or '\n'. However, strings in Python are immutable and can't be modified, i.e. the line.strip() call will not change the line object. The result is a new string which is returned by the call.

As already mentioned, it would help if you posted an example from your input file. If there are more than one number on each line, strip() is not the function to use. Instead you should use split(), which is also a string method.

To conclude, assuming that each line contains several floats separated by whitespace, and that you want to build a list of all the numbers, you can try the following:

floats = []
with open(filename) as f:
    for line in f:
        floats.extend([float(number) for number in line.split()])

answered Feb 19, 2012 at 17:27

You can use:

mylist = []
# Assuming that you have loaded data into a lines variable. 
for line in lines:
    mylist.append(line.strip().split('\t')

to get a python list with only the field values for all the lines of data.

answered Sep 7, 2016 at 13:51

Can you strip n in python?

JobelJobel

6136 silver badges12 bronze badges

How about using a python regex pattern?

import re
f = open('test.txt', 'r')
strings = re.findall(r"\S+", f.read())

And for your case of line.strip() will not work because Python removes only the leading and trailing characters

From Python Docs - Return a copy of the string with leading and trailing characters removed. If chars is omitted or None, whitespace characters are removed. If given and not None, chars must be a string; the characters in the string will be stripped from the both ends of the string this method is called on.

answered Feb 19, 2012 at 7:52

sransarasransara

3,4062 gold badges18 silver badges21 bronze badges

pythons csv library is good for this.

http://docs.python.org/library/csv.html

CSV = comma seperated values, but if you set the delimiter = \t, then it works for tab separated values too.

answered Feb 19, 2012 at 7:15

Can you strip n in python?

Rusty RobRusty Rob

15.6k8 gold badges94 silver badges111 bronze badges

Often, depending on the way you read the lines, in order to get rid of \n from myline, you can take myline[:-1] since \n is the last character of myline.

For the '\t' you can use replace() or strip()

answered Feb 19, 2012 at 7:32

jimifikijimifiki

5,2241 gold badge32 silver badges56 bronze badges

If you're trying to convert lines of floats separated by tab characters, then just float(line) will try to convert the whole line into one float, which will fail if there's more than one. Using strip to get rid of leading and trailing whitespace isn't going to help that fundamental problem.

Maybe you need to split each line into pieces and do something with each piece?

answered Feb 19, 2012 at 7:51

BenBen

64.1k20 gold badges124 silver badges168 bronze badges

Not the answer you're looking for? Browse other questions tagged python strip or ask your own question.

Does strip get rid of New line?

The strip() function is used to remove both trailing and leading newlines from the string that it is being operated on. It also removes the whitespaces on both sides of the string. The following code uses the strip() function to remove a newline character from a string in Python.

Can I print \n in Python?

The new line character in Python is \n . It is used to indicate the end of a line of text. You can print strings without adding a new line with end = , which is the character that will be used to separate the lines.

What can you strip in Python?

The Strip() method in Python removes or truncates the given characters from the beginning and the end of the original string. The default behavior of the strip() method is to remove the whitespace from the beginning and at the end of the string.

How do you break a new line in a string in Python?

In Python, the new line character “\n” is used to create a new line. When inserted in a string all the characters after the character are added to a new line.