标签: stdin

管道输入到Python程序,然后从用户获取输入

假设我想将输入传递给Python程序,然后在命令行上从用户那里获得输入.

echo http://example.com/image.jpg | python solve_captcha.py
Run Code Online (Sandbox Code Playgroud)

以及的内容solve_captcha.py是:

import sys 
image_url = sys.stdin.readline()

# Download and open the captcha...

captcha = raw_input("Solve this captcha:")
# do some processing...
Run Code Online (Sandbox Code Playgroud)

以上将触发EOFError: EOF when reading a line错误.

我也尝试添加sys.stdin.close()一行,这提示了一个ValueError: I/O operation on closed file.

您可以管道信息stdin,然后从用户那里获得输入吗?

注意:这是一个简化的简化示例 - 请不要回答说"你为什么要在第一种情况下这样做",这真的令人沮丧.我只是想知道你是否可以管道信息stdin,然后提示用户输入.

python bash stdin

14
推荐指数
2
解决办法
9188
查看次数

在PHP CLI中对STDIN进行非阻塞

无论如何都要读取STDIN非阻塞的PHP:

我试过这个:

stream_set_blocking(STDIN, false);
echo fread(STDIN, 1);
Run Code Online (Sandbox Code Playgroud)

还有这个:

$stdin = fopen('php://stdin', 'r');
stream_set_blocking($stdin, false);
echo 'Press enter to force run command...' . PHP_EOL;
echo fread($stdin, 1);
Run Code Online (Sandbox Code Playgroud)

但它仍会阻塞,直到fread得到一些数据.

我注意到一些关于这个(7岁)的开放式错误报告,所以如果无法完成,是否有人知道任何可以实现此目的的粗暴黑客(在Windows和Linux上)?

php stdin

14
推荐指数
2
解决办法
7573
查看次数

从stdin获取输入

我希望从for中获取stdin的输入

3
10 20 30
Run Code Online (Sandbox Code Playgroud)

第一个数字是第二行中的数字量.这就是我得到的东西,但它停留在while循环中...所以我相信.我在调试模式下运行,数组没有分配任何值...

import java.util.*;

public class Tester {   

   public static void main (String[] args)
   {

       int testNum;
       int[] testCases;

       Scanner in = new Scanner(System.in);

       System.out.println("Enter test number");
       testNum = in.nextInt();

       testCases = new int[testNum];

       int i = 0;

       while(in.hasNextInt()) {
           testCases[i] = in.nextInt();
           i++;
       }

       for(Integer t : testCases) {
           if(t != null)
               System.out.println(t.toString());               
       }

   } 

} 
Run Code Online (Sandbox Code Playgroud)

java io stdin

14
推荐指数
1
解决办法
9万
查看次数

写入生成的进程stdin nodejs?

我有一个脚本,我想从另一个脚本运行.问题是子脚本(进程)在继续之前需要用户输入.

var child = spawn('script');
child.stdin.setEncoding('utf8');
child.stdout.on('data', function (data) {
    console.log(data.toString().trim()); // tells me to input my data
    child.stdin.write('my data\n');
});
Run Code Online (Sandbox Code Playgroud)

输入数据后,子脚本应继续,但它会挂在那里.

实际上上面的代码对我有用.我在子脚本中使用commander.js来提示用户执行操作.以下是我如何回应孩子的脚本提示:

child.stdout.on('data', function (data) {
    switch (data.toString().trim()) {
        case 'Username:':
            child.stdin.write('user');
            break;
        case 'Password:':
            child.stdin.write('pass');
            break;
    }
});
Run Code Online (Sandbox Code Playgroud)

同样的事情与假设一起工作:

var suppose = require('suppose');

suppose('script')
    .on('Username: ').respond('user')
    .on('Password: ').respond('pass')
.error(function (err) {
    console.log(err.message);
})
.end(function (code) {
    console.log(code);
    done();
});
Run Code Online (Sandbox Code Playgroud)

stdin stream child-process node.js

14
推荐指数
1
解决办法
1万
查看次数

从stdin读取时,无法使用CTRL D触发'end'事件

在以下代码中

process.stdin.resume();
process.stdin.setEncoding('utf8');

process.stdin.on('data', function(chunk) {
  process.stdout.write('data: ' + chunk);
});

process.stdin.on('end', function() {
  process.stdout.write('end');
});
Run Code Online (Sandbox Code Playgroud)

我无法使用ctrl + D触发'end'事件,而ctrl + C只是退出而不触发它.

hello
data: hello
data
data: data
foo
data: foo
^F
data: ?
^N
data: ?
^D
data: ?
^D^D
data: ??
Run Code Online (Sandbox Code Playgroud)

events stdin node.js

14
推荐指数
4
解决办法
9424
查看次数

来自stdin的熊猫数据

是否有可能让stdin数据进入pandas DataFrame?

目前我将数据保存在一个中间json文件中然后执行:

pandas.read_json('my_json_file.json')
Run Code Online (Sandbox Code Playgroud)

但是想知道是否可以直接在python脚本中管道stdin.我发现了这个:如果在Python中没有数据传输,如何从stdin或文件中读取? 但不知道如何在熊猫DF中逐行插入.

python json stdin pandas

14
推荐指数
1
解决办法
6226
查看次数

为stdin提供价值以供在线判断

我正在做一个在线评判并遇到一些问题

我到现在为止做了什么?

所以我的PHP代码获取用户代码并将其提供给函数Compile(),该函数编译代码并报告编译是否成功.这部分代码运行得很好.

现在剩下的就是运行代码和评估

我的问题

我的问题是如何处理用户的标准输入.用户通常使用scanf,BufferedReader等从stdin获取输入,这些值通常使用键盘获取.现在假设我已将这些值写入文件中.我将如何为他们提供这些价值.

我的尝试

好吧,我正在寻找各种方式,我遇到了这个

fopen('php://stdin', 'w') 
Run Code Online (Sandbox Code Playgroud)

如果我认为这个工作就像一个文件而不是它会导致问题,如果多个用户在同一时间使用stdin.

php stdin

14
推荐指数
1
解决办法
406
查看次数

Erlang读stdin写stdout

我正试图通过面试街学习二郎.我现在只是学习这门语言所以我什么都不知道.我想知道如何从stdin读取并写入stdout.

我想写一个写"Hello World!"的简单程序.stdin收到的次数.

所以用stdin输入:

6
Run Code Online (Sandbox Code Playgroud)

写到标准输出:

Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Run Code Online (Sandbox Code Playgroud)

理想情况下,我会一次读取stdin一行(即使在这种情况下它只是一位数)所以我想我将使用get_line.这就是我现在所知道的.

谢谢

谢谢

erlang stdin stdout getline

13
推荐指数
1
解决办法
7985
查看次数

使用带du的管道来计算stdin的"大小"

我有一个程序,我从文件中加载文本,然后根据其中一个字段过滤它.我感兴趣的是此过滤步骤后的数据大小.

理想情况下,我可以做类似的事情: awk '$2>=10' <myfile | du -

我可以只应用过滤器并将输出保存在某处,在其上调用du,然后删除该文件,但文件非常大,因此写入磁盘可能需要一段时间.

认识到du代表"磁盘使用",我怀疑我会问一些没有意义的东西,考虑到程序是如何工作的.如果有另一个常用的实用程序,请建议它!

linux stdin du

13
推荐指数
2
解决办法
4589
查看次数

aysncio无法在Windows上读取stdin

我试图在Windows 7 64位和Python 3.4.3上异步读取stdin

我尝试了这个受到SO回答的启发:

import asyncio
import sys


def reader():
    print('Received:', sys.stdin.readline())


loop = asyncio.get_event_loop()
task = loop.add_reader(sys.stdin.fileno(), reader)
loop.run_forever()
loop.close()
Run Code Online (Sandbox Code Playgroud)

然而,它提出了一个OSError: [WInError 100381] An operation was attempted on something that is not a socket.

类似文件的对象是否stdin可以包含在类中以赋予它套接字的API?我已单独提出这个问题,但如果解决方案很简单,请在此处回答.

假设我无法包装类似文件的对象使其成为套接字,我尝试使用流作为这个要点的启发:

import asyncio
import sys


@asyncio.coroutine
def stdio(loop):
    reader = asyncio.StreamReader(loop=loop)
    reader_protocol = asyncio.StreamReaderProtocol(reader)
    yield from loop.connect_read_pipe(lambda: reader_protocol, sys.stdin)


@asyncio.coroutine
def async_input(loop):
    reader = yield from stdio(loop)
    line = yield from reader.readline()
    return …
Run Code Online (Sandbox Code Playgroud)

python windows stdin asynchronous python-3.x

13
推荐指数
1
解决办法
2789
查看次数

标签 统计

stdin ×10

python ×3

node.js ×2

php ×2

asynchronous ×1

bash ×1

child-process ×1

du ×1

erlang ×1

events ×1

getline ×1

io ×1

java ×1

json ×1

linux ×1

pandas ×1

python-3.x ×1

stdout ×1

stream ×1

windows ×1