sys.stdin.read() returns empty string
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
add a comment |
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
add a comment |
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
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
python-3.x
asked Nov 20 at 8:43
user9026
99213
99213
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
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: ')
actually, when I run the program in the command prompt in windows, it does print the the value ofx
, but inside the Spyder console, the cursor just goes to the next line without waiting for the input. and if I typex
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
add a comment |
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)
so is Spyder console different from command prompt on windows ?
– user9026
Nov 20 at 10:10
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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: ')
actually, when I run the program in the command prompt in windows, it does print the the value ofx
, but inside the Spyder console, the cursor just goes to the next line without waiting for the input. and if I typex
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
add a comment |
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: ')
actually, when I run the program in the command prompt in windows, it does print the the value ofx
, but inside the Spyder console, the cursor just goes to the next line without waiting for the input. and if I typex
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
add a comment |
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: ')
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: ')
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 ofx
, but inside the Spyder console, the cursor just goes to the next line without waiting for the input. and if I typex
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
add a comment |
actually, when I run the program in the command prompt in windows, it does print the the value ofx
, but inside the Spyder console, the cursor just goes to the next line without waiting for the input. and if I typex
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
add a comment |
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)
so is Spyder console different from command prompt on windows ?
– user9026
Nov 20 at 10:10
add a comment |
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)
so is Spyder console different from command prompt on windows ?
– user9026
Nov 20 at 10:10
add a comment |
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)
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)
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
add a comment |
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
add a comment |
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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