Python命令行';文件输入流';
我对来自C/C++的python相当陌生,我想知道如何让我的“main.py”重新识别/使用bash shell提供的输入,如下所示: python main.pyPython命令行';文件输入流';,python,file,file-io,filestream,Python,File,File Io,Filestream,我对来自C/C++的python相当陌生,我想知道如何让我的“main.py”重新识别/使用bash shell提供的输入,如下所示: python main.py
(文件为纯文本)从
sys.stdin
读取:
import sys
sys.stdin.read()
作为一个应用程序,您可以使用其读取函数,也可以简单地迭代输入行:
for line in sys.stdin:
print line
我将使用创建一个接受文件路径并打开它的选项解析器
import argparse
def main():
parser = argparse.ArgumentParser()
parser.add_argument('infile', type='open')
args = parser.parse_args()
for line in args.infile:
print line
if __name__ == '__main__':
main()
如果type='open'
没有提供足够的控制,可以将其替换为argparse.FileType('o')
,它接受bufsize
和模式
args(请参阅)
编辑:我的错误。这将不支持您的用例。这将允许您提供文件路径,但不能将文件内容通过管道传送到进程中。我将把这个答案留在这里,因为它可能是一个有用的替代方法。在这里使用
fileinput
模块最合适,也更灵活
除了支持stdin外,它还可以读取列为参数的文件。@walter use
line=line.rstrip()
。
import fileinput
for line in fileinput.input():
process(line)