Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python命令行';文件输入流';_Python_File_File Io_Filestream - Fatal编程技术网

Python命令行';文件输入流';

Python命令行';文件输入流';,python,file,file-io,filestream,Python,File,File Io,Filestream,我对来自C/C++的python相当陌生,我想知道如何让我的“main.py”重新识别/使用bash shell提供的输入,如下所示: python main.py

我对来自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)