我对来自C / C ++的python很新,我想知道如何让我的'main.py'重新配置/使用从bash shell给出的输入:
python main.py< text.txt
(文件是纯文本)
答案 0 :(得分:8)
从sys.stdin
阅读:
import sys
sys.stdin.read()
作为file-like object,您可以使用其读取函数或简单地遍历输入行:
for line in sys.stdin:
print line
答案 1 :(得分:6)
使用fileinput
模块在这里最合适,也更灵活。
http://docs.python.org/library/fileinput.html
import fileinput
for line in fileinput.input():
process(line)
除了支持stdin之外,它还可以从列为参数的文件中读取。
答案 2 :(得分:2)
我会使用argparse创建一个接受文件路径并打开它的选项解析器。
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的mode
(请参阅http://docs.python.org/dev/library/argparse.html#type)
编辑:我的错误。这将不支持您的用例。这将允许您提供文件路径,但不会将文件内容传递到进程中。我会在这里留下这个答案,因为它可能有用作为替代方案。