Forwarding tom list
Please always use Reply All (or Reply List) to include the list.

On 08/12/14 03:50, diliup gabadamudalige wrote:
I managed to get the output file and input file working.
The output works fine but the input does not. It simply exits the program. No crash. Exits.It DOES NOT WAIT FOR ME TO TYPE IN THE inputfile.txt

here is the program in all.

I have attached the whole program if you think that will help.
if __name__ == '__main__':
    ## menna me kaalla to change the output path
    p = os.getcwd()
    outfile = "\output_file.txt"
    infile = "\input_file.txt"

    outfilepath = p + outfile
    infilepath = p + infile

    sys.stdout = open(outfilepath, "w+")
    sys.stdin = open(infilepath, "w+")

    os.startfile(outfilepath)
    os.startfile(infilepath)
    ##--------------------------------------------

for i in data.info <http://data.info>: # print all the scale info to window

        print i

    run = True

    while run:
        scaletemplate = ["C", "D", "E", "F", "G", "A", "B"]
        ## menna input ganna thana
        getscale = sys.stdin.readline()
        raw_input("Which scale do you require?:")
        ##---------------------------------------
        print getscale



        if len(getscale) > 1:
            getscale = getscale[0].upper() + getscale[1:]
        else:
            getscale = getscale.upper()



        if getscale in data.scalenames:

            scale = main(getscale)

            print scale

        elif getscale == "Q" or getscale == "X" or getscale == "":
            run = False
            print"exiting..."

        else:
            print "No such scale"

On Mon, Dec 8, 2014 at 8:49 AM, diliup gabadamudalige <dili...@gmail.com <mailto:dili...@gmail.com>> wrote:

    I do not need to save any info in the text files opened for stdout
    and stdin.
    The text files are empty files used only for Python output or Input.
    I only need to use them as standard output and input.
    I do not need to both above in the same file.
    They may be in two different files.
    after the user gets his answers from the program, on exit the
    files may be closed without saving.

    Sorry for not adding the above in the previous email.
    Thank you again.

    On Mon, Dec 8, 2014 at 8:41 AM, diliup gabadamudalige
    <dili...@gmail.com <mailto:dili...@gmail.com>> 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.
        
**********************************************************************************************




-- 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.
    
**********************************************************************************************




--
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

Reply via email to