我正在尝试使用一个bash脚本来执行以下操作(使用伪代码):
#!/bin/bash
run myapp (which needs arguments given from stdin)
/* do some extra stuff */
provide arguments to hanging process myapp
例如,假设您运行myapp,在运行之后,它会询问您的姓名。也就是说,我通过bash运行它,但我还不想给它命名。我只想让它暂时运行,同时bash做一些其他的事情,然后我想提供我的名字(仍然通过bash)。我该怎么做呢?
我需要关于子流程模块的帮助。这个问题听起来可能是重复的,我看过许多与它有关的文章。但即使如此,我也无法解决我的问题。其内容如下:
我有一个C程序2.c,它的内容如下:
#include<stdio.h>
int main()
{
int a;
scanf("%d",&a);
while(1)
{
if(a==0) //Specific case for the first input
{
printf("%d\n",(a+1));
break;
}
sca
我有一个node.js进程和一个python进程并行运行。Node.js进程是一个http服务器。每当我收到请求时,我都想在python进程中调用一个可调用对象(函数/或任何可调用对象),并从node.js代码中传递一些环境变量和一个可调用函数。在psudo代码中,它类似于
// node.js process
http.createServer(function (req, res) {
function start_response(status_code, headers){
// closure function that sets headers
res.writ
我正在尝试使用ffmpeg和Python的subprocess模块来转换一些音频文件。我从一个URL抓取音频文件,并希望能够将Python File对象传递给ffmpeg,而不是先将它们保存到磁盘。如果我能得到一个文件流,而不是让ffmpeg将输出保存到一个文件中,那就太好了。
作为参考,我现在这样做:
tmp = "/dev/shm"
audio_wav_file = requests.get(audio_url)
## ## ##
## This is what I don't want to
对于我自己的一个小项目,我正在尝试编写一个程序,在计算机默认打印机上打印文件的内容。我知道周围有很多类似的问题,但是没有一个在我的电脑上工作(LinuxMint17.3)
这是我试过的一个,它最接近我所需要的:
from subprocess import Popen
from cStringIO import StringIO
# place the output in a file like object
sio = StringIO("test.txt")
# call the system's lpr command
p = Popen(["lpr&
我的Python脚本有一个奇怪的问题。当我通过命令行python /home/myname/myscriptname.py运行它时,它返回我期望的正确的值。
这是我的cron命令- 10 * * * * /usr/bin/python /home/myname/myscriptname.py
当运行cron时,我得到以下输出(不正确)-
('', None)
Module not enabled
当我通过命令行运行它时,我得到以下结果(正确)-
The following people have the module enabled:
person1
person2
pers
我正在使用python脚本将数据加载到数据库批量加载器中。
加载器的输入是stdin。我一直无法获得正确的语法来调用基于unix的批量加载器,以传递要加载的python列表的内容。
我一直在读关于Popen和PIPE的文章,但他们的表现并不像我期望的那样。
python列表包含要批量加载的数据库记录。在linux中,它看起来像这样:
echo "this is the string being written to the DB" | sql -c "COPY table FROM stdin"
将echo语句替换为要与此命令一起使用的python列表的正确方法
我有一个进程,它将连续的字节流写入stdout。我有另一个进程,它从第一个进程的标准输出中读取,然后完成。但我发现,当第二个进程完成时,它会关闭管道(我认为),因此进程1停止运行。
我尝试了两种不同的方法:
在第1款中:
# make fifo
mkfifo /tmp/camera
# stream video from my webcam to the pipe
ffmpeg -y -f v4l2 -r 10 -i /dev/video0 -f avi /tmp/camera
在第2款中:
# attach to pipe and take a snapshot
rrmpeg -y -r 1
在Python代码中,我经常使用以下命令向shell发送命令并读取响应
import subprocess as S
x = subprocess.Popen('<command>', shell=True, stdout=S.PIPE)
x.stdout.read()
,其中<command>是有问题的外壳命令。但是,我发现在子进程中发出此指令时,例如,对于命令stty size,外壳程序会响应为
stty: stdin isn't a terminal
我的指令返回一个空字符串。根据上的Python文档,我还尝试用communicate()替