Python Forum
Remove all \n from end of list items
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Remove all \n from end of list items
#1
Hello all,

I've been Googling and reading here, reading StackOverflow but can't solve what I feel is a very simple problem.

I cannot strip off the trailing '\n' from all my list items in list. I've tried a few dozen examples online and they never work for me, I then thought maybe I need something in my library but all seems well covered there too.

I'm not going to give all the failing examples here, there is no point.

Here are all the errors I'm getting using the different techniques:

AttributeError: 'list' object has no attribute 'rstrip'
AttributeError: 'list' object has no attribute 'strip'
<map object at 0x000001A36C428D30> (I know, not an error but what I got trying example)
TypeError: descriptor 'strip' for 'str' objects doesn't apply to a 'list' object
TypeError: expected string or bytes-like object
AttributeError: type object 'DataFrame' has no attribute 'res'
TypeError: 'list' object is not callable
TypeError: expected string or bytes-like object

I tried everything, I just don't get why I can't simply strip off the trailing \n in all my items.

Is there a special library for it, because everyone with their answers all seem to work.

Here is what I'm originally doing though:

res = []
with open('sample.txt', 'r') as fin:
    data = fin.read().splitlines(True)
with open('sample.txt', 'w') as fout:
    res.append(data[:200])
    fout.writelines(data[200:])
print(res)
I'm getting 200 lines from a txt file and simultaneously creating a list of the proxies to use in my program, but they all have the newlines from when they being appended.

Thanks for any help.


hmmm, I'm just now noticing the double brackets on my new list:

[['203.215.181.219:36342\n', 
'200.149.0.74:8080\n', '46.209.98.227:8080\n', '150.95.131.174:3128\n']]
Reply
#2
You can simply strip newline from the end of the string. But is this actually needed?
I'm not 'in'-sane. Indeed, I am so far 'out' of sane that you appear a tiny blip on the distant coast of sanity. Bucky Katt, Get Fuzzy

Da Bishop: There's a dead bishop on the landing. I don't know who keeps bringing them in here. ....but society is to blame.
Reply
#3
Hello yes because I set it as a proxy for requests. I've been doing all the strip methods, string strip methods and keep getting all the errors I mentioned in the OP.

I think it's because it's not turning into a list because of the double [[]], that's why the stripping is bringing errors.

OK, I have a working example but I open file 3 times which is probably not a good idea for speed. What I need to do is get 200 lines from a text file into a list, and delete those 200 lines simultaneously.

Anyway this works, but I think it's not best:

with open("sample.txt") as myfile:
    res = [next(myfile).strip() for x in range(200)]
with open('sample.txt', 'r') as fin:
    data = fin.read().splitlines(True)
with open('sample.txt', 'w') as fout:
    fout.writelines(data[200:])
print(res)

Ok, keep answering my own post, I've slimmed down, this works best.

with open('sample.txt', 'r') as fin:
    res = [next(fin).strip() for x in range(200)]
    data = fin.read().splitlines(True)
with open('sample.txt', 'w') as fout:
    fout.writelines(data[200:])
print(res)
Reply
#4
You are doing two task here making a list and wirte to file.
Let say this is sample.txt.
Output:
203.215.181.219:36342 200.149.0.74:8080 46.209.98.227:8080 150.95.131.174:3128
Now just do the witting to file part and it seems okay.
with open('sample.txt', 'r') as fin:
    data = fin.read().splitlines(True)
with open('sample1.txt', 'w') as fout:
    fout.writelines(data[2:])
Other name sample1.txt so it don't overwrite original in this test.
Output:
46.209.98.227:8080 150.95.131.174:3128
Getting a list without \n could be done like this.
with open('sample.txt', 'r') as fin:
    data = [i.strip() for i in fin]
Output:
>>> data ['203.215.181.219:36342', '200.149.0.74:8080', '46.209.98.227:8080', '150.95.131.174:3128']
Writing back from this list could be.
with open('sample.txt', 'r') as fin:
    data = [i.strip() for i in fin]
with open('sample2.txt', 'w') as fout:
    for ip in data[:2]:
        fout.write(f'{ip}\n')
Output:
203.215.181.219:36342 200.149.0.74:8080
Reply
#5
Another possibility is to use split('\n') instead of splitlines.

Using data provided by snippsat in file named ip.txt:

>>> with open('ip.txt', 'r') as f: 
...     data = f.read().split('\n') 
...
>>> data
['203.215.181.219:36342',
 '200.149.0.74:8080',
 '46.209.98.227:8080',
 '150.95.131.174:3128']
I still don't understand why it's good idea to strip newlines while reading the file and then put them back while writing to file (I know, I am slow today).
I'm not 'in'-sane. Indeed, I am so far 'out' of sane that you appear a tiny blip on the distant coast of sanity. Bucky Katt, Get Fuzzy

Da Bishop: There's a dead bishop on the landing. I don't know who keeps bringing them in here. ....but society is to blame.
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  How to parse and group hierarchical list items from an unindented string in Python? ann23fr 0 75 Yesterday, 01:16 PM
Last Post: ann23fr
  unable to remove all elements from list based on a condition sg_python 3 371 Jan-27-2024, 04:03 PM
Last Post: deanhystad
  Why do I have to repeat items in list slices in order to make this work? Pythonica 7 1,256 May-22-2023, 10:39 PM
Last Post: ICanIBB
  Finding combinations of list of items (30 or so) LynnS 1 836 Jan-25-2023, 02:57 PM
Last Post: deanhystad
  Remove numbers from a list menator01 4 1,251 Nov-13-2022, 01:27 AM
Last Post: menator01
  For Word, Count in List (Counts.Items()) new_coder_231013 6 2,497 Jul-21-2022, 02:51 PM
Last Post: new_coder_231013
  How to get list of exactly 10 items? Mark17 1 2,403 May-26-2022, 01:37 PM
Last Post: Mark17
  how to assign items from a list to a dictionary CompleteNewb 3 1,535 Mar-19-2022, 01:25 AM
Last Post: deanhystad
  Reading list items without brackets and quotes jesse68 6 4,521 Jan-14-2022, 07:07 PM
Last Post: jesse68
  Remove empty keys in a python list python_student 7 2,899 Jan-12-2022, 10:23 PM
Last Post: python_student

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020