如果将一个文件作为参数或stdin给出,是否有更多的pythonic方式来打开文件?

时间:2009-11-20 14:30:17

标签: python unix command-line

我正在尝试编写一个python脚本,该脚本遵循从stdin接受输入的公共unix命令行模式,如果没有给出文件名。这就是我一直在使用的:

if __name__ == "__main__":
    if len(sys.argv) > 1:
        stream = open(sys.argv[1])
    else:
        stream = sys.stdin

有更多的pythonic方式吗?

4 个答案:

答案 0 :(得分:10)

fileinput模块非常适用于此。

答案 1 :(得分:5)

类似但一线的解决方案

stream = sys.argv[1] if len(sys.argv)>1 else sys.stdin

答案 2 :(得分:2)

这个怎么样?

stream=sys.argv[1:] and open(sys.argv[1]) or sys.stdin

答案 3 :(得分:0)

我建议你让它变得更加单一:

if len(sys.argv) > 1:
    sys.stdin = open(sys.argv[1])