我正在编写一个实用程序,它可以接受文件名,也可以从标准输入中读取。
我想知道最健壮/最快的方法来检查stdin是否存在(数据正在通过管道传输到程序),如果存在,则读取该数据。如果它不存在,处理将在给定的文件名上进行。我试过使用下面的测试stdin的大小,但我相信由于它是一个流而不是一个实际的文件,它不会像我想象的那样工作,它总是打印-1。我知道我总是可以在!= EOF的时候一次读取输入的1个字符,但是我想要一个更通用的解决方案,这样我就可以得到一个fd或一个文件*,如果存在stdin,那么程序的其余部分就可以无缝地运行。我也想知道它的大小,悬而未决的流已经被以前的程序关闭。
long getS
有没有办法从函数内部读取通过管道传递给函数的数据,但只有在有的情况下才能读取?我像这样对cat进行了尝试:
function myPipe
set -l pipe_input (cat -)
echo $pipe_input # is never reached
end
echo test | myPipe
然而,这会导致函数停止并等待管道输入,即使实际上有数据通过管道传输到函数也是如此。
我希望fish执行函数的其余部分,即使没有管道输入,这样我就可以处理管道数据。
我正在寻找的方法,直接从麦克风编码的mp3文件,而不是保存到一个中间wav文件。有很多例子可以保存到wav文件中,也有很多例子可以将wav文件转换为mp3。但是我没有办法直接从麦克风中保存一个mp3。例如,我正在使用下面的示例,在网站上找到记录到一个wav文件。 我希望得到关于如何将frames列表(pyaudio stream Read)直接转换为mp3的建议。或者,通过ffmpeg将pyaudio麦克风输入直接流式传输到mp3,而不用读取的数据填充列表/数组。非常感谢! import pyaudio
import wave
# the file name output you want
我需要通过管道将两个数据流从Python (3.4)脚本传输到外部程序。一个人可以去STDIN,我对此没意见:
from subprocess import check_output
data1 = b'This is the data to pass on stdin'
check_output(['externalprogram'], input=data1)
程序可以接受命令行上给定的文件描述符上的另一部分,但是如何告诉python在另一个fd上发送数据呢?
data2 = b'This is the data to pass on fd 3
我有以下一系列命令:
cd / && ls | ( cd /tmp && cat >dumpfile)
本系列命令执行以下操作:它创建一个名为/tmp/dumpfile的文件。此文件包含根目录的列表。
cd / && ls输出通过管道传输到子subshell。我发现奇怪的是,在子subshell中,不是cd /tmp吞下ls输出,而是由后面的cat >dumpfile获取它并将其写入文件。这里发生什么事情?
我有一个python程序,它从stdin读取输入(必需),并处理来自stdin的行:
for lines in stdin:
#do stuff to lines
filename = #need file name
#example print
print(filename)
但是,在这个for循环中,我还需要获取通过管道传输到此python程序的文件名,如下所示:
cat document.txt | pythonFile.py #should print document.txt with the example print
有没有办法做到这一点?
我有一个简单的swift程序,一个只有一个文件的main.swift程序,看起来像这样。
import Foundation
var past = [String]()
while true {
let input = readLine()!
if input == "close" {
break
}
else {
past.append(input)
print(past)
}
}
我想写一个python脚本,它可以向这个程序发送一个输入字符串,然后返回该程序的输出,并让它随时间运行。
我正在编写一个程序,它从文件中读取输入,然后将其打印到屏幕上。当我在没有从文件中获取输入的情况下运行它时,它工作得非常好。然而,每次我试图从文件中运行它时,它都会给我一个“线程中的异常"main”java.util.NoSuchElementException: No line file at“错误,这个错误发生在输入应该被读取的地方。我不知道发生了什么。
该程序将从用户获取输入,创建一个Photo对象,然后将信息打印到屏幕上。当我手动输入信息时,一切运行正常,但当我尝试使用java PhotoTest < test.dat来获取文件的输入时,它给出了这个错误消息:
线程"
这个问题可能有点难以表述。例如,一个程序从stdin接收一个字符串,但它需要用户的交互式输入,如下所示:
echo "Some text to handle later after command is specified" | a.out
在项目开始时:
printf("Please input command first");
scanf("%s", &cmd);
/* Some Code Here */
/* process "Some text to handle later after command is speci
我有一个sql.exe,它有一个命令行接口,接受一个sql查询并打印结果。我需要用Python编写一个程序,它将生成sql命令,将它们作为输入传递给这个程序并读取输出。
为了锻炼,我用python,adder.py编写了一个玩具程序。
if __name__ == '__main__':
while True:
try:
line = input()
a, b = line.strip().split()
c = int(a) + int(b)
print(c