sys.stdin.read() returns empty string












0














I am on Python 3.5 inside Spyder 3.1.3. When I enter the following code, x has an empty string. I am not asked for any user input. Cursor directly goes to the next line



import sys

x = sys.stdin.read()

print(x)


So after executing this code, x = '' So what is happening here ?










share|improve this question



























    0














    I am on Python 3.5 inside Spyder 3.1.3. When I enter the following code, x has an empty string. I am not asked for any user input. Cursor directly goes to the next line



    import sys

    x = sys.stdin.read()

    print(x)


    So after executing this code, x = '' So what is happening here ?










    share|improve this question

























      0












      0








      0







      I am on Python 3.5 inside Spyder 3.1.3. When I enter the following code, x has an empty string. I am not asked for any user input. Cursor directly goes to the next line



      import sys

      x = sys.stdin.read()

      print(x)


      So after executing this code, x = '' So what is happening here ?










      share|improve this question













      I am on Python 3.5 inside Spyder 3.1.3. When I enter the following code, x has an empty string. I am not asked for any user input. Cursor directly goes to the next line



      import sys

      x = sys.stdin.read()

      print(x)


      So after executing this code, x = '' So what is happening here ?







      python-3.x






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 20 at 8:43









      user9026

      99213




      99213
























          2 Answers
          2






          active

          oldest

          votes


















          1














          When the cursor jumps to the newline, it has started to read from stdin, so anything you type would be passed to variable x and then re-printed once you break out from stdin.



          If you want user input you can use:



          x = input('Say something: ')





          share|improve this answer





















          • actually, when I run the program in the command prompt in windows, it does print the the value of x, but inside the Spyder console, the cursor just goes to the next line without waiting for the input. and if I type x there , it will just print an empty string
            – user9026
            Nov 20 at 9:00










          • so it seems that the Spyder console does not behave like a system terminal. How can I have Spyder console behave like system terminal in windows ?
            – user9026
            Nov 20 at 9:05










          • Sorry I don't know Spyder
            – Adam
            Nov 20 at 9:13



















          1














          The stdin and stdout are references to file descriptors for the host OS. You didn't state the system you were running on, however in Linux; any process that is a child of the initializing process would share the same stdin / stdout.



          As an example, when running from the command line or terminal, you can pipe information into it.



          echo "Say something: " | ./yourscript.py


          yourscript.py



          #!/usr/bin/python

          import sys

          for line in sys.stdin.readlines():
          print('boom', line)





          share|improve this answer





















          • so is Spyder console different from command prompt on windows ?
            – user9026
            Nov 20 at 10:10











          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53389146%2fsys-stdin-read-returns-empty-string%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          2 Answers
          2






          active

          oldest

          votes








          2 Answers
          2






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          1














          When the cursor jumps to the newline, it has started to read from stdin, so anything you type would be passed to variable x and then re-printed once you break out from stdin.



          If you want user input you can use:



          x = input('Say something: ')





          share|improve this answer





















          • actually, when I run the program in the command prompt in windows, it does print the the value of x, but inside the Spyder console, the cursor just goes to the next line without waiting for the input. and if I type x there , it will just print an empty string
            – user9026
            Nov 20 at 9:00










          • so it seems that the Spyder console does not behave like a system terminal. How can I have Spyder console behave like system terminal in windows ?
            – user9026
            Nov 20 at 9:05










          • Sorry I don't know Spyder
            – Adam
            Nov 20 at 9:13
















          1














          When the cursor jumps to the newline, it has started to read from stdin, so anything you type would be passed to variable x and then re-printed once you break out from stdin.



          If you want user input you can use:



          x = input('Say something: ')





          share|improve this answer





















          • actually, when I run the program in the command prompt in windows, it does print the the value of x, but inside the Spyder console, the cursor just goes to the next line without waiting for the input. and if I type x there , it will just print an empty string
            – user9026
            Nov 20 at 9:00










          • so it seems that the Spyder console does not behave like a system terminal. How can I have Spyder console behave like system terminal in windows ?
            – user9026
            Nov 20 at 9:05










          • Sorry I don't know Spyder
            – Adam
            Nov 20 at 9:13














          1












          1








          1






          When the cursor jumps to the newline, it has started to read from stdin, so anything you type would be passed to variable x and then re-printed once you break out from stdin.



          If you want user input you can use:



          x = input('Say something: ')





          share|improve this answer












          When the cursor jumps to the newline, it has started to read from stdin, so anything you type would be passed to variable x and then re-printed once you break out from stdin.



          If you want user input you can use:



          x = input('Say something: ')






          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Nov 20 at 8:46









          Adam

          1067




          1067












          • actually, when I run the program in the command prompt in windows, it does print the the value of x, but inside the Spyder console, the cursor just goes to the next line without waiting for the input. and if I type x there , it will just print an empty string
            – user9026
            Nov 20 at 9:00










          • so it seems that the Spyder console does not behave like a system terminal. How can I have Spyder console behave like system terminal in windows ?
            – user9026
            Nov 20 at 9:05










          • Sorry I don't know Spyder
            – Adam
            Nov 20 at 9:13


















          • actually, when I run the program in the command prompt in windows, it does print the the value of x, but inside the Spyder console, the cursor just goes to the next line without waiting for the input. and if I type x there , it will just print an empty string
            – user9026
            Nov 20 at 9:00










          • so it seems that the Spyder console does not behave like a system terminal. How can I have Spyder console behave like system terminal in windows ?
            – user9026
            Nov 20 at 9:05










          • Sorry I don't know Spyder
            – Adam
            Nov 20 at 9:13
















          actually, when I run the program in the command prompt in windows, it does print the the value of x, but inside the Spyder console, the cursor just goes to the next line without waiting for the input. and if I type x there , it will just print an empty string
          – user9026
          Nov 20 at 9:00




          actually, when I run the program in the command prompt in windows, it does print the the value of x, but inside the Spyder console, the cursor just goes to the next line without waiting for the input. and if I type x there , it will just print an empty string
          – user9026
          Nov 20 at 9:00












          so it seems that the Spyder console does not behave like a system terminal. How can I have Spyder console behave like system terminal in windows ?
          – user9026
          Nov 20 at 9:05




          so it seems that the Spyder console does not behave like a system terminal. How can I have Spyder console behave like system terminal in windows ?
          – user9026
          Nov 20 at 9:05












          Sorry I don't know Spyder
          – Adam
          Nov 20 at 9:13




          Sorry I don't know Spyder
          – Adam
          Nov 20 at 9:13













          1














          The stdin and stdout are references to file descriptors for the host OS. You didn't state the system you were running on, however in Linux; any process that is a child of the initializing process would share the same stdin / stdout.



          As an example, when running from the command line or terminal, you can pipe information into it.



          echo "Say something: " | ./yourscript.py


          yourscript.py



          #!/usr/bin/python

          import sys

          for line in sys.stdin.readlines():
          print('boom', line)





          share|improve this answer





















          • so is Spyder console different from command prompt on windows ?
            – user9026
            Nov 20 at 10:10
















          1














          The stdin and stdout are references to file descriptors for the host OS. You didn't state the system you were running on, however in Linux; any process that is a child of the initializing process would share the same stdin / stdout.



          As an example, when running from the command line or terminal, you can pipe information into it.



          echo "Say something: " | ./yourscript.py


          yourscript.py



          #!/usr/bin/python

          import sys

          for line in sys.stdin.readlines():
          print('boom', line)





          share|improve this answer





















          • so is Spyder console different from command prompt on windows ?
            – user9026
            Nov 20 at 10:10














          1












          1








          1






          The stdin and stdout are references to file descriptors for the host OS. You didn't state the system you were running on, however in Linux; any process that is a child of the initializing process would share the same stdin / stdout.



          As an example, when running from the command line or terminal, you can pipe information into it.



          echo "Say something: " | ./yourscript.py


          yourscript.py



          #!/usr/bin/python

          import sys

          for line in sys.stdin.readlines():
          print('boom', line)





          share|improve this answer












          The stdin and stdout are references to file descriptors for the host OS. You didn't state the system you were running on, however in Linux; any process that is a child of the initializing process would share the same stdin / stdout.



          As an example, when running from the command line or terminal, you can pipe information into it.



          echo "Say something: " | ./yourscript.py


          yourscript.py



          #!/usr/bin/python

          import sys

          for line in sys.stdin.readlines():
          print('boom', line)






          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Nov 20 at 9:22









          Jimmy Newsom

          361




          361












          • so is Spyder console different from command prompt on windows ?
            – user9026
            Nov 20 at 10:10


















          • so is Spyder console different from command prompt on windows ?
            – user9026
            Nov 20 at 10:10
















          so is Spyder console different from command prompt on windows ?
          – user9026
          Nov 20 at 10:10




          so is Spyder console different from command prompt on windows ?
          – user9026
          Nov 20 at 10:10


















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.





          Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


          Please pay close attention to the following guidance:


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53389146%2fsys-stdin-read-returns-empty-string%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Create new schema in PostgreSQL using DBeaver

          Deepest pit of an array with Javascript: test on Codility

          Costa Masnaga