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 '18 at 8:43
user9026user9026
114214
114214
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 '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
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 '18 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 '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
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 '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
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 '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 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 '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
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 '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
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 '18 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 '18 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 '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
add a comment |
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
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.
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