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 '18 at 8:43









      user9026user9026

      114214




      114214
























          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 '18 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 '18 at 9:05











          • Sorry I don't know Spyder

            – Adam
            Nov 20 '18 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 '18 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 '18 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 '18 at 9:05











          • Sorry I don't know Spyder

            – Adam
            Nov 20 '18 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 '18 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 '18 at 9:05











          • Sorry I don't know Spyder

            – Adam
            Nov 20 '18 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 '18 at 8:46









          AdamAdam

          35710




          35710













          • 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 '18 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 '18 at 9:05











          • Sorry I don't know Spyder

            – Adam
            Nov 20 '18 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 '18 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 '18 at 9:05











          • Sorry I don't know Spyder

            – Adam
            Nov 20 '18 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 '18 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 '18 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 '18 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 '18 at 9:05













          Sorry I don't know Spyder

          – Adam
          Nov 20 '18 at 9:13





          Sorry I don't know Spyder

          – Adam
          Nov 20 '18 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 '18 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 '18 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 '18 at 9:22









          Jimmy NewsomJimmy Newsom

          361




          361













          • so is Spyder console different from command prompt on windows ?

            – user9026
            Nov 20 '18 at 10:10



















          • so is Spyder console different from command prompt on windows ?

            – user9026
            Nov 20 '18 at 10:10

















          so is Spyder console different from command prompt on windows ?

          – user9026
          Nov 20 '18 at 10:10





          so is Spyder console different from command prompt on windows ?

          – user9026
          Nov 20 '18 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.




          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







          這個網誌中的熱門文章

          Hercules Kyvelos

          Tangent Lines Diagram Along Smooth Curve

          Yusuf al-Mu'taman ibn Hud