On 2 Sep 2013 18:13, "Roy Smith" <r...@panix.com> wrote: > > In article <mailman.500.1378139057.19984.python-l...@python.org>, > Anthony Papillion <papill...@gmail.com> wrote: > > > On 09/02/2013 11:12 AM, Chris “Kwpolska” Warrick wrote: > > > On Mon, Sep 2, 2013 at 6:06 PM, Anthony Papillion <papill...@gmail.com > > > > wrote: > > >> Hello Everyone, > > >> > > >> I have a multi-line string and I need to remove the very first line from > > >> it. How can I do that? I looked at StringIO but I can't seem to figure > > >> out how to properly use it to remove the first line. Basically, I want > > >> to toss the first line but keep everything else. Can anyone put me on > > >> the right path? I know it is probably easy but I'm still learning Python > > >> and don't have all the string functions down yet. > > >> > > >> Thanks, > > >> Anthony > > >> -- > > >> http://mail.python.org/mailman/listinfo/python-list > > > > > > Use split() and join() methods of strings, along with slicing. Like this: > > > > > > fullstring = """foo > > > bar > > > baz""" > > > > > > sansfirstline = '\n'.join(fullstring.split('\n')[1:]) > > > > > > The last line does this: > > > 1. fullstring.split('\n') turns it into a list of ['foo', 'bar', 'baz'] > > > 2. the [1:] slice removes the first element, making it ['bar', 'baz'] > > > 3. Finally, '\n'.join() turns the list into a string separated by > > > newlines ("""bar > > > baz""") > > > > This, of course, worked like a charm. I really need to study the string > > methods. In the work I'm doing they are going to come in very handy. > > Thank you, Chris! > > Let me toss out a couple of other possibilities. Not necessarily > better, but if you're learning about strings, you might as well learn > some other ways to do it: > > > s = """foo > > bar > > baz""" > > print "using index..." > i = s.index('\n') > print s[i+1:] > > print "using regex..." > import re > print re.sub(r'^[^\n]*\n', '', s) > > > I'll admit, the split/slice/join solution is probably the easiest to > implement (and to understand when you're reading the code). But, it > copies all the data twice; once when split() runs, and again when join() > runs. Both the index and regex solutions should only do a single copy. > For huge strings, this might matter. For a three-liner as in your > example, it doesn't make any difference. >
Is there not a limit argument to str.split? This should be trivial. first, rest = multiline_str.split('\n', 1)
-- https://mail.python.org/mailman/listinfo/python-list