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

Pau*_*uff 4 python unix command-line

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

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

是否有更多的pythonic方式来做到这一点?

Ned*_*der 10

的FileInput模块是为这个完美的.


luc*_*luc 5

类似但一线的解决方案

stream = sys.argv[1] if len(sys.argv)>1 else sys.stdin
Run Code Online (Sandbox Code Playgroud)

  • `len(sys.argv)`*总是*至少是一个(脚本名称是`argv [0]`)? (2认同)