I am using a test file that is only 3 lines: Punjabi .Mp3 Big Lake (DVD) SWV.avi Blue Balloon.AHC.RH.mkv
The program correctly appends an * to the end of the line, but then it goes into a loop printing random looking stuff. f = open('wout.txt', 'r+') for line in f: if line=="": exit line=line[:-1] line=line+" *" f.write(line) print line f.close() On Mon, 25 Apr 2016 20:44:50 +0100, MRAB <pyt...@mrabarnett.plus.com> wrote: >On 2016-04-25 20:08, Joaquin Alzola wrote: >> Strip() = white spaces. >> Description >> The method strip() returns a copy of the string in which all chars have been >> stripped from the beginning and the end of the string (default whitespace >> characters). >> >> Use to remove return carriage--> line[:-1] >> >1. In the file it might be a linefeed, or a carriage return, or a >carriage return followed by a linefeed, depending on the operating >system. Python translates it to a linefeed "\n" (or 'newline') on >reading. > >2. It's possible that the last line doesn't end have a line ending, so >line[:-1] could be removing some other character. It's safer to use >line.rstrip("\n"). > >> -----Original Message----- >> From: Python-list >> [mailto:python-list-bounces+joaquin.alzola=lebara....@python.org] On Behalf >> Of Seymore4Head >> Sent: 25 April 2016 20:01 >> To: python-list@python.org >> Subject: Re: Python path and append >> >> On Mon, 25 Apr 2016 18:24:02 -0000 (UTC), Rob Gaddi >> <rgaddi@highlandtechnology.invalid> wrote: >> >>>Seymore4Head wrote: >>> >>>> On Tue, 19 Apr 2016 18:29:38 -0400, Seymore4Head >>>> <Seymore4Head@Hotmail.invalid> wrote: >>>> >>>> I am going to forget using a directory path. >>>> I would like to take the file win.txt and append a space and the * >>>> symbol. >>>> >>>> f = open('win.txt', 'r+') >>>> for line in f: >>>> f.read(line) >>>> f.write(line+" *") >>>> >>>> This doesn't work. Would someone fix it please? It is for a task I >>>> am trying to accomplish just for a home task. >>> >>>"for line in f:" already means "make the variable line equal to each >>>line in f sequentially". f.read is both superfluous and also doesn't >>>do that. Leave it out entirely. >>> >>>The next problem you'll have is that iterating over the lines of the >>>file leaves the newline at the end of line, so your * will end up on >>>the wrong line. >>> >>>Do yourself a favor: >>>https://docs.python.org/3/tutorial/inputoutput.html >>>isn't very long. >> >> I was reading that. I have read it before. I don't use python enough to >> even remember the simple stuff. Then when I try to use if for something >> simple I forget how. >> >> f = open('wout.txt', 'r+') >> for line in f: >> line=line.strip() >> f.write(line+" *") >> f.close() >> >> Still broke. How about just telling me where I missed? Please? >> -- >> https://mail.python.org/mailman/listinfo/python-list >> This email is confidential and may be subject to privilege. If you are not >> the intended recipient, please do not copy or disclose its content but >> contact the sender immediately upon receipt. >> -- https://mail.python.org/mailman/listinfo/python-list