标签: stdin

以编程方式从STDIN读取或在Perl中输入文件

在stl中以编程方式从stdin或输入文件(如果提供)中读取的最简单的方法是什么?

perl stdin

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

文件描述符如何工作?

有人能告诉我为什么这不起作用?我正在玩文件描述符,但感觉有点迷失.

#!/bin/bash
echo "This"
echo "is" >&2
echo "a" >&3
echo "test." >&4
Run Code Online (Sandbox Code Playgroud)

前三行运行正常,但最后两行错误.为什么?

bash shell stdin stdout file-descriptor

67
推荐指数
4
解决办法
6万
查看次数

从Java中读取System.in的最快方法是什么?

我正在阅读一堆由空格分隔的整数或使用标准中的换行符Scanner(System.in).

有没有更快的方法在Java中这样做?

java optimization stdin inputstream

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

使用argparse在Python中使用可选的stdin

我发现了非常有用的语法

parser.add_argument('-i', '--input-file', type=argparse.FileType('r'), default='-')
Run Code Online (Sandbox Code Playgroud)

用于指定输入文件或使用stdin - 我想在程序中使用它们.但是,并不总是需要输入文件.如果我没有使用-i或重定向输入

$ someprog | my_python_prog
$ my_python_prog < inputfile
Run Code Online (Sandbox Code Playgroud)

我不希望我的Python程序等待输入.我希望它只是移动并使用默认值.

python stdin argparse

60
推荐指数
3
解决办法
2万
查看次数

从文件或STDIN中读取

我编写了一个命令行实用程序,它使用getopt来解析命令行中给出的参数.我还希望有一个文件名是一个可选参数,比如它在其他实用程序中,如grep,cut等.所以,我希望它具有以下用法

tool -d character -f integer [filename]
Run Code Online (Sandbox Code Playgroud)

我该如何实施以下内容?

  • 如果给出了文件名,则从文件中读取.
  • 如果没有给出文件名,请从STDIN读取.

python command-line stdin arguments file

59
推荐指数
7
解决办法
6万
查看次数

如何从stdin读取mutliline输入到变量以及如何在shell中打印出一个(sh,bash)?

我想做的是以下内容:

  1. 从多行输入读stdin入变量A
  2. 进行各种操作 A
  3. A,而不会失去定界符符号(\n,\r,\t等)到另一个命令

目前的问题是,我无法用read命令读取它,因为它停止在换行时读取.

我可以读取stdin cat,像这样:

my_var=`cat /dev/stdin`
Run Code Online (Sandbox Code Playgroud)

,但后来我不知道如何打印它.因此换行符,制表符和其他分隔符仍然存在.

我的示例脚本如下所示:

#!/usr/local/bin/bash

A=`cat /dev/stdin`

if [ ${#A} -eq 0 ]; then
        exit 0
else
        cat ${A} | /usr/local/sbin/nextcommand
fi
Run Code Online (Sandbox Code Playgroud)

bash shell stdin multiline

56
推荐指数
6
解决办法
6万
查看次数

如何写入Python子进程'stdin?

我正在尝试编写一个启动子进程的Python脚本,并写入子进程stdin.我还希望能够确定子进程崩溃时要采取的操作.

我正在尝试启动的过程是一个程序nuke,它有自己的内置版本的Python,我希望能够提交命令,然后告诉它在执行命令后退出.到目前为止,我已经知道,如果我在命令提示符上启动Python,然后nuke作为子进程启动,那么我可以输入命令nuke,但我希望能够将所有这些都放在一个脚本中,以便主Python程序可以启动nuke然后写入其标准输入(因此也可以写入其内置版本的Python),并告诉它做一些时髦的东西,所以我编写了一个脚本,nuke如下所示:

subprocess.call(["C:/Program Files/Nuke6.3v5/Nuke6.3", "-t", "E:/NukeTest/test.nk"])
Run Code Online (Sandbox Code Playgroud)

然后没有任何事情发生,因为nuke等待用户输入.我现在如何写入标准输入?

我这样做是因为我正在运行一个插件nuke,导致它在渲染多个帧时间歇性地崩溃.所以我希望这个脚本能够启动nuke,告诉它做某事然后如果它崩溃了,再试一次.因此,如果有办法赶上崩溃并且仍然可以,那就太棒了.

python stdin subprocess nuke

55
推荐指数
3
解决办法
8万
查看次数

PHP标准输入?

我知道PHP通常用于web开发,那里没有标准的输入,但是PHP声称是可用作通用脚本语言,如果你不遵循这是时髦的基于web的约定.我知道PHP打印到stdout(或者你想要调用的任何东西)printecho,这很简单,但我想知道PHP脚本如何从中获取输入stdin(特别是fgetc(),但任何输入函数都是好的),或者是这甚至可能吗?

php file-io stdin

53
推荐指数
9
解决办法
6万
查看次数

如何将STDOUT重定向到PHP中的文件?

下面的代码几乎可以工作,但这不是我的意思:

ob_start();
echo 'xxx';
$contents = ob_get_contents();
ob_end_clean();
file_put_contents($file,$contents);
Run Code Online (Sandbox Code Playgroud)

有更自然的方式吗?

php stdin stdout

53
推荐指数
5
解决办法
5万
查看次数

如何检查stdin是否有一些数据?

在Python中,如何检查是否sys.stdin有数据?

我发现不仅os.isatty(0)可以检查stdin是否连接到TTY设备,还可以检查是否有可用的数据.

但如果有人使用像

sys.stdin = cStringIO.StringIO("ddd")
Run Code Online (Sandbox Code Playgroud)

在使用之后os.isatty(0),它仍然返回True.我需要做些什么来检查stdin是否有数据?

python redirect stdin stdout

53
推荐指数
2
解决办法
4万
查看次数