python stdin read_python 3:使用readahead从stdin管道读取字节
我想读取字节。sys.stdin以文本模式打开,但它有一个可用于读取字节的缓冲区:sys.stdin.buffer。
我的问题是,当我将数据导入python时,如果我想提前阅读,似乎只有两个选项,否则我将得到一个io.UnsupportedOperation: File or stream is not seekable.从sys.stdin读取缓冲文本,将该文本解码为字节,然后返回
(sys.stdin.read(1).decode(); sys.stdin.seek(-1, io.SEEK_CUR)。
由于输入流中的字节不可编码,因此不可接受。
使用peek从stdin的缓冲区中获取一些字节,将其切片到适当的数字,然后祈祷,因为peek不能保证任何东西:它可能给出的比您请求的少或多
(sys.stdin.buffer.peek(1)[:1])
peek实际上是文档不足的,它给了您一堆字节,您必须对这些字节进行密集的性能切片。
顺便说一下,这个错误实际上只适用于以下情况:对于./myscript.py
#!/usr/bin/env python3
from sys import stdin
print(stdin)
print(stdin.buffer)
print(stdin.buffer.raw)"
$ ./testio.py
$ ./testio.py
[the same as above]
$ echo hi | ./testio.py
[the same as above]
一些最初的想法,比如将字节流包装成随机访问缓冲区,但失败了,错误与上面提到的相同:BufferedRandom(sys.stdin.buffer).seek(0)•io.UnsupportedOperation…
最后,为了您的方便,我提出:
Python的io类层次结构IOBase
├RawIOBase
│└FileIO
├BufferedIOBase (buffers a RawIOBase)
│├BufferedWriter┐
│├BufferedReader│
││ └─────┴BufferedRWPair
│├BufferedRandom (implements seeking)
│└BytesIO (wraps a bytes)
└TextIOBase
├TextIOWrapper (wraps a BufferedIOBase)
└TextIO (wraps a str)
如果你忘了这个问题:我如何从stdin获取下一个字节,而不进行任何反编码,也不推进流的光标?
python stdin read_python 3:使用readahead从stdin管道读取字节相关推荐
- 【python ACM 输入输出的处理:sys.stdin.readline().strip().split())】
[python & ACM 输入输出的处理:sys.stdin.readline().strip().split())] 一.输入处理 按行读取数据 readline() 会返回一个字符串: ...
- fflush(stdin)和fflush(stdout)和rewind(stdin)的区别和作用
理解:fflush(stdin)和fflush(stdout)和rewind(stdin) 小结论(多谢网友zhao4zhong1为我解答疑难): 1.在每个最后不带\n的printf后面加fflus ...
- python+opencv电表读数自动识别,电表电量自动读取
python+opencv电表读数自动识别,电表电量自动读取,直接运行image_re.py,输入需要读数的电表图片即可,程序包中以提供测试图片(1.jpg-4.jpg).opencv采用3.4.15 ...
- 第一个Python程序hello.py提示出现File stdin,line 1错误
写第一个Python程序hello.py,内容仅有一句,print 'hello world', 运行 Python hello.py 出错,提示: File "<stdin>& ...
- python出现file stdin_第一个Python程序hello.py提示出现File stdin,line 1错误
写第一个Python程序hello.py,内容仅有一句,print 'hello world', 运行 Python hello.py 出错,提示: File "" , line ...
- php 读取管道,php – 使用proc_open时从STDIN管道读取
它更像是C或glibc问题.你必须使用fflush(stdout). 为什么?在终端中运行a.out和从PHP调用它有什么区别? 答:如果你在终端中运行a.out(正在使用stdin),那么glibc ...
- [Python爬虫] 中文编码问题:raw_input输入、文件读取、变量比较等str、unicode、utf-8转换问题
最近研究搜索引擎.知识图谱和Python爬虫比较多,中文乱码问题再次浮现于眼前.虽然市面上讲述中文编码问题的文章数不胜数,同时以前我也讲述过PHP处理数据库服务器中文乱码问题,但是此处还是准备简单做下 ...
- 《Python Cookbook 3rd》笔记(2.20):字节字符串上的字符串操作
字节字符串上的字符串操作 问题 你想在字节字(Byte String)符串上执行普通的文本操作 (比如移除,搜索和替换) 解法 字节字符串同样也支持大部分和文本字符串一样的内置操作.比如: >& ...
- python subprocess pipe_python类库31[进程subprocess与管道pipe]
修改自: 原文 : Working with Python subprocess - Shells, Processes, Streams, Pipes, Redirects and More 一 程 ...
最新文章
- inline-block 间距
- 编程之美-寻找最大的k个数
- 会计记忆总结之四:会计凭证
- [转]SqlServer2005 各版本区别
- ab flash player 8_FLASH 质子治疗的技术挑战
- Prosjecni(构造)
- 一个基于Node.js的本地快速测试服务器 1
- 历经十年,Windows 7 生命周期将结束,微软:快换 Windows 10
- MicroK8s及KubeFlow安装文档
- mwt是什么意思网络用语_网络用语奶茶婊是什么意思(奶茶婊具备的3个表现)...
- PHP上传文件大小限制的问题
- 关于这个blog使用的问题?
- python的设计模式
- MATLAB中 histogram 和 imhist 的区别
- 徐培成2017大数据Hadoop经典案例-徐培成-专题视频课程
- 3t studio 导出数据_Studio 3T下操作MongoDB的基本命令(转载)
- python视频关键帧提取_视频关键帧提取
- ctf逆向解题——re1
- 5分钟快速学会使用Swiper.js,实现轮播图各种效果!
- 冰雪复古鸿蒙碎片哪里出,复古冰雪玩法总览!!!干货!!!
热门文章
- 今天日期减去过去日期_汽车各零部件也有身份证,教你们如何看这些部件的quot;出生日期quot;...
- java数据成员_Java基础教程之对象的方法与数据成员
- 新版本NexT 调动态背景、调canvas_nest的解决方案
- 蓝桥杯 基础练习 Huffuman树
- 链表的C++创建及翻转
- mac连接ubuntu,tomcat乱码
- Why Helm? - 每天5分钟玩转 Docker 容器技术(160)
- Linux故障自愈脚本,实现故障自愈要攻克的3个问题以及开箱即用的方案
- [Ext JS]5.11 轻量版的树- treelist
- 小巧的Web进度条组件 - NProgress