Skip to main content
  1. Posts/

把文件设为stdin后如何读数据

39 字· 0 · 0 ·
Python

可以借助sys.stdin.readline() sys.stdin.read() sys.stdin.readlines()

也可以直接用input()实现交互

坑点:在读的时候必须以只读的方式打开,图一是错误的,图二才能正确读出数据

事实上,图二之所以能够读出数据,是因为指针偏移量重置为0了,在图一的flush后加上seek(0)即可,如图三

图三

使用with语句改进:

import sys
import random

with open("in.txt",'w+',encoding='utf8') as f:
    sys.stdin = f
    f.write("55")
    f.flush()
    f.seek(0)
    line = sys.stdin.readline()
    count = 0
    while True:
        print(random.randint(0, int(line)))
        count += 1
        if count == 50:
            break