学习python遇到的问题
python 重定向输入:io.UnsupportedOperation: not readable
两处错误
一、用open打开一个文件,此时调用的是w写入模式,下面使用read是没有权限的,得使用w+读写模式
二、使用write写入一个字符s,但是此时并没有真正的写入,而是还存在与内存中。此时执行read读取的为空字符。需要执行a.close()以后,再使用a=open(“D://2.txt”)
a.read()才能够读取到数据。
把文件设为stdin后如何读数据
可以借助
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
2022年4月17日15:10:34
python 字符串转为元组再添加进列表
while True: # 获取数据
line = input("请输入学生的姓名,性别,年龄,语文成绩,数学成绩,英语成绩(输入-1时退出):")
if line == '-1':
print("已退出")
break
# rows.append(tuple(line))
line = tuple(line.split(','))
rows.append(line)
rows.append(tuple(line))
如果直接如此,则一个字符为一个元素
[('a', 'm', 'y', ',', 'w', 'e', 'm', 'a', 'n', ',', '1', '8', ',', '8', '5', ',', '8', '5', ',', '8', '5')]
line = tuple(line.split(','))
应该这样写,会以逗号为分隔符确定元素
('amy', 'weman', '18', '85', '85', '85')
本文作者:mykaneki
本文链接:https://www.cnblogs.com/mykaneki/p/16750359.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步