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