使用<从标准输入读取文本文件

时间:2018-11-09 18:04:38

标签: python

我有一个以以下方式结束的Python脚本:

if __name__ == "__main__":
     if len(sys.argv) == 2:
       file = open(sys.argv[1])
       text = file.readline()
       ... #more statements

这在我输入以下内容时有效:$ python3 script.py my_file.txt

但是,我想对其进行更改,以便我的脚本可以接受来自标准输入(甚至是文本文件)的文本。这就是我想要做的:

$ ./script.py < my_file.txt

我认为我需要使用sys.stdin.read()(或者也许是sys.stdin.readlines())。您能告诉我我需要从原始脚本中更改什么吗?

对于这看起来很基础,我感到很抱歉,但是我是Python的新手,所以很难发现两者之间的区别。

2 个答案:

答案 0 :(得分:1)

这就是您所说的,您无需打开文件。

致电file.readline()而不是致电sys.stdin.readline()

您可以将其设置为“ nice”,例如:

file = sys.stdin if use_stdin else open(sys.argv[1])

答案 1 :(得分:0)

有一个很酷的模块可以用于此!假设您要按行进行处理:

import fileinput

for line in fileinput.input():
    process_line(line)