instead of
14 last_char = eachline[len(eachline)-1]
do
14 last_char = eachline[-1] #Which is shorter but the same thing

On , spa...@gmail.com wrote:
Hello Neha,

I think this script will do what you want and will also fix some of the issues in your original code -
--------------------------------------------------------
1 #! /usr/bin/python


2
3 import curses.ascii
4 import string
5 import sys
6
7 with open(sys.argv[1],'r') as input:
8 for eachline in input:

9 eachline = eachline.strip('\n')

10 if curses.ascii.isalpha(eachline[0]):
11 first_char = ''
12 else:
13 first_char = eachline[0]
14 last_char = eachline[len(eachline)-1]


15 eachline = eachline.lstrip(first_char)
16 eachline = eachline.rstrip(last_char)
17 words = eachline.split(' ')
18 outline = first_char
19 for word in reversed(words):


20 outline = outline + str(word) + ' '
21 outline = outline.rstrip() + last_char + '\n'
22 print outline
-----------------------------------------------------------------------------------




It is much more explicit. It considers some special cases and gives the output in the format desired by you.


Regards,
SWP

On Fri, Jun 17, 2011 at 12:21 AM, Neha P mywr...@yahoo.com> wrote:


Thanks James




I guess i have to use the same code for text in yellow... seems like ther's no other way...




Regards,
Neha




From: James Reynolds eire1...@gmail.com>
To: Neha P mywr...@yahoo.com>


Cc: "tutor@python.org" tutor@python.org>
Sent: Thursday, June 16, 2011 2:43 PM


Subject: Re: [Tutor] File parsing




use split on the list to split it up. search each element for something like:

if '"' == element[:-1]:


if that evaluation is True, I would remove the quote mark from the word on the right side, and place a new one on the left side using something like '"' + element.





I would do the same thing for the other side in the same for loop, instead the evaluation would be:


if '"' == element[:1]:










On Thu, Jun 16, 2011 at 1:03 PM, Neha P mywr...@yahoo.com> wrote:



Hi all,

I know below query may sound silly, but can somebody suggest any better way of doing this:


It would be helpful.



I need to read a file line by line and print each line starting from the last word first:

C:\Python26>type file_reversing_program.txt




import sys
import string





f_obj=open(sys.argv[1],"r")


for eachline in f_obj:



eachline=eachline[ :-1] # to eliminate the trailing "\n"



list_words=eachline.split(" ")
list_words[0]=list_words[0]+"\n" # to add "\n" so that after line 1 is printed, line 2 should start on a new line



list_words.reverse()
sans-serif"> for every_word in list_words:
print every_word, # 'comma' helps in printing words on same line,hence for last word we append "\n"





f_obj.close()



C:\Python26>type input_file.txt




"Hi ther, how are you?"
I are doing fine, thank you.





C:\Python26>file_reversing_program.py input_file.txt

you?" are how ther, "Hi



you. thank fine, doing are I



Is there a better way of doing the above program, mainly the text highlighted in yellow,



serif">Also if that is settled can there be a logic for getting the ouput more properly formatted (for text in blue) ,

say giving an output like :
"you? are how ther, Hi"
you. thank fine, doing are I









Thanks,

Neha






_______________________________________________


Tutor maillist - Tutor@python.org

To unsubscribe or change subscription options:

http://mail.python.org/mailman/listinfo/tutor
















_______________________________________________

Tutor maillist - Tutor@python.org

To unsubscribe or change subscription options:

http://mail.python.org/mailman/listinfo/tutor





--
http://spawgi.wordpress.com
We can do it and do it better.




_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to