小编Sto*_*yes的帖子

如何从python中的stdin逐行读取

每个人都知道如何计算C中STDIN中的字符.但是,当我尝试在python3中执行此操作时,我发现它是一个谜题.(counter.py)

import sys
chrCounter = 0

for line in sys.stdin.readline():
    chrCounter += len(line)

print(chrCounter)
Run Code Online (Sandbox Code Playgroud)

然后我尝试通过测试程序

python3 counter.py < counter.py
Run Code Online (Sandbox Code Playgroud)

答案只是第一行"import sys"的长度.实际上,程序只读取标准输入的第一行,并丢弃其余部分.

如果我用sys.stdin.read()代替sys.stdin.readline它将会工作.

import sys
print(len(sys.stdin.read()))
Run Code Online (Sandbox Code Playgroud)

但是,很明显,该程序不适合大量输入.请给我一个优雅的解决方案.谢谢!

python stdin

18
推荐指数
2
解决办法
4万
查看次数

标签 统计

python ×1

stdin ×1