Forwarding tom list
Please always use Reply All (or Reply List) to include the list.
On 08/12/14 03:11, diliup gabadamudalige wrote:
Dear Allen,
:)
Thank you very much for the responses but some things have been
totally misunderstood here. :)
1.What I want to do is to redirect the output of the program to a text
file instead of the standard Python output. That is why I opened the
text file. That part of the program works fine.
2. data is a py file named data.py which holds all the text I need to
be printed to the console. As it is an explanation of music theory and
will be large i have put it into a separate file which is loaded as a
module at the begining of the program. hence data.info
<http://data.info> which is a list of strings which are printed to the
scree. Hence in my program I open a text file and send the print out
put to that which is then printed to the text file. This works too.
3. When I ask for input in python the prompt which is usually in the
Python output console waits for the user input and returns that as a
string.
4.Insted of 3 above I would like the user to be able to type into a
text file which may be opened by the program to collect input. For
instance i open a text file named give_me_your_input.txt and then the
user types his requirement in that text file which is taken as a
string by the program which in turn either returns the appropriate answer.
I know how to do everything else above except how to get the input
from the text file in real time.
My program works without any flaws without any of the stdin or stdout
in the normal console.
I hope this is clear enough to supply me with an answer.
I thank you once again for your time and hope you can spare a little
more to help me on the way.
On Mon, Dec 8, 2014 at 7:33 AM, Alan Gauld <alan.ga...@btinternet.com
<mailto:alan.ga...@btinternet.com>> wrote:
On 07/12/14 17:38, diliup gabadamudalige wrote:
if __name__ == '__main__':
You don't really need that unless your code can be treated
as a module, which yours can't.
p = os.getcwd()
filename = "\get scale of choice.txt"
filepath = p + filename
sys.stdout = open(filepath, "w")
Why are you overwriting stdout with a file?
Why not just write to the file directly?
Usually if you do overwrite stdout you make a reference
to the old stdout first so you can restore it later.
os.startfile(filepath)
This tries to execute filepath, but you just opened it
in write mode which creates an empty file. So you are
trying to execute an empty file?
for i in data.info <http://data.info> <http://data.info>:
What is data?
and what is the url like thing supposed to be?
Have you done a tutorial on Python?
Do you understand how the for loop works?
It needs an iterator/collection to operate on.
# print all the scale info
to window
print i
This will print to stdout, which you have assigned
to a file above. So it won't print in any window.
run = True
while run:
scaletemplate = ["C", "D", "E", "F", "G", "A", "B"]
getscale = sys.stdin.raw_input(filepath)
Not sure what this is doing but raw_input reads from
stdin - it is not a method of stdin. And the argument to stdin is
supposed to be a prompt to the user, you have passed a filename?
#getscale = raw_input("Which scale do you require?:")
if len(getscale) > 1:
getscale = getscale[0].upper() + getscale[1:]
getscale is commented out so this will raise an error.
else:
getscale = getscale.upper()
if getscale in data.scalenames:
scale = main(getscale)
print scale
Again, what is data?
elif getscale == "Q" or getscale == "X" or getscale
== "":
run = False
print"exiting..."
else:
print "No such scale"
Again, these prints will go to your file since it is stdout.
I need to get the stdin input from the text I type into the
same text
file that I have stdout at.
How would that work exactly?
You want to open the file in a text editor or somesuch? Then as
you type into it you want Python to read the values you type?
Before you save it? Or after? And you also want the output from
Python to go into the file that you are editing? While you are
editing it?
Can you explain exactly how the user is expected to use this
combination of things?
It is not clear, very unlike any normal computing task and
probably impossible. I suspect you have a concept in your mind but
it's not
what you are describing here.
How do I do that. None of the answers at
stackoverflow got me going.
I'm not surproised, I think what you are asking is impossible
(or at least very difficult) , and even if it isn't it would be
a weird way of working.
--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.amazon.com/author/alan_gauld
Follow my photo-blog on Flickr at:
http://www.flickr.com/photos/alangauldphotos
_______________________________________________
Tutor maillist - Tutor@python.org <mailto:Tutor@python.org>
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor
--
Diliup Gabadamudalige
http://www.diliupg.com
http://soft.diliupg.com/
**********************************************************************************************
This e-mail is confidential. It may also be legally privileged. If you
are not the intended recipient or have received it in error, please
delete it and all copies from your system and notify the sender
immediately by return e-mail. Any unauthorized reading, reproducing,
printing or further dissemination of this e-mail or its contents is
strictly prohibited and may be unlawful. Internet communications
cannot be guaranteed to be timely, secure, error or virus-free. The
sender does not accept liability for any errors or omissions.
**********************************************************************************************
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor