jjzjj

python - 将 BytesIO 转换为文件

我有一个包含excel文档数据的BytesIO对象。我要使用的库不支持BytesIO并且需要一个File对象。如何获取我的BytesIO对象并将其转换为File对象? 最佳答案 #CreateanexamplefromioimportBytesIObytesio_object=BytesIO(b"HelloWorld!")#Writethestuffwithopen("output.txt","wb")asf:f.write(bytesio_object.getbuffer()) 关于p

python - 将 BytesIO 转换为文件

我有一个包含excel文档数据的BytesIO对象。我要使用的库不支持BytesIO并且需要一个File对象。如何获取我的BytesIO对象并将其转换为File对象? 最佳答案 #CreateanexamplefromioimportBytesIObytesio_object=BytesIO(b"HelloWorld!")#Writethestuffwithopen("output.txt","wb")asf:f.write(bytesio_object.getbuffer()) 关于p

python - python的io.BytesIO.getvalue()返回str而不是bytes正常吗?

python的io.BytesIO.getvalue()返回str而不是bytes是否正常?Python2.7.1(r271:86832,Jun132011,14:28:51)>>>importio>>>a=io.BytesIO()>>>a>>>a.getvalue()''>>>printtype(a.getvalue())>>>我应该提交错误吗? 最佳答案 不,这不是错误。这是正常行为。看到这个答案:thebytestypeinpython2.7andPEP-358基本上归结为2.7bytes只是str的别名,以平滑过渡到3.x。

python - 将 io.StringIO 转换为 io.BytesIO

原始问题:我得到一个StringIO对象,如何将其转换为BytesIO?更新:更普遍的问题是,如何转换二进制(编码)file-like对象进入解码file-likepython3中的对象?我得到的天真的方法是:importiosio=io.StringIO('wellohorld')bio=io.BytesIO(sio.read().encode('utf8'))print(bio.read())#printsb'wellohorld'有没有更高效和优雅的方式来做到这一点?上面的代码只是将所有内容读入内存,对其进行编码,而不是将数据分block传输。例如,对于反向问题(BytesIO-

python - 将 BytesIO 对象写入文件, 'efficiently'

因此,将BytesIO对象写入文件的快速方法是使用:withopen('myfile.ext','wb')asf:f.write(myBytesIOObj.getvalue())myBytesIOObj.close()但是,如果我想遍历myBytesIOObj而不是将它写成一个block,我该怎么做呢?我在使用Python2.7.1。另外,如果BytesIO很大,那么迭代写入是否是一种更有效的方式?谢谢 最佳答案 shutil有一个可以高效写入文件的实用程序。它以block的形式复制,默认为16K。任何4Kblock的倍数都应该是一

python - 在 python3 中写入 csv 中的 io.BytesIO 失败

我正在尝试编写python2/3兼容代码以将字符串写入csv文件对象。这段代码:line_as_list=[line.encode()forlineinline_as_list]writer_file=io.BytesIO()writer=csv.writer(writer_file,dialect=dialect,delimiter=self.delimiter)forlineinline_as_list:assertisinstance(line,bytes)writer.writerow(line)在Python3上出现此错误:>writer.writerow(line)ETyp

python - PIL 无法识别 io.BytesIO 对象的图像文件

我正在使用PIL的Pillowfork并不断收到错误OSError:cannotidentifyimagefile尝试打开图像时。我在python3.4中使用virtualenv,没有安装PIL。我试图根据其他遇到同样问题的人找到解决方案,但是,这些解决方案对我不起作用。这是我的代码:fromPILimportImageimportio#ThisportionispartofmytestcodebyteImg=Image.open("some/location/to/a/file/in/my/directories.png").tobytes()#NontestcodedataByte

html - 将 io.BytesIO 转换为 io.StringIO 来解析 HTML 页面

我正在尝试解析通过pyCurl检索到的HTML页面,但pyCurlWRITEFUNCTION将页面作为BYTES而不是字符串返回,因此我无法使用BeautifulSoup解析它。有什么方法可以将io.BytesIO转换为io.StringIO吗?或者有没有其他方法解析HTML页面?我正在使用Python3.3.2。 最佳答案 接受的答案中的代码实际上完全从流中读取以进行解码。下面是正确的方法,将一个流转换为另一个流,其中可以逐block读取数据。#Initializeareadbufferinput=io.BytesIO(b'Ini

python - 二进制流中 `open` 和 `io.BytesIO` 之间的区别

我正在学习如何在Python中使用流,我注意到IOdocs说出以下内容:Theeasiestwaytocreateabinarystreamiswithopen()with'b'inthemodestring:f=open("myfile.jpg","rb")In-memorybinarystreamsarealsoavailableasBytesIOobjects:f=io.BytesIO(b"someinitialbinarydata:\x00\x01")open定义的f和BytesIO定义的f有什么区别。换句话说,是什么构成了“内存中的二进制流”,它与open的作用有何不同?

python - 写入然后读取内存字节 (BytesIO) 给出空白结果

我想试试pythonBytesIO类。作为一个实验,我尝试写入内存中的zip文件,然后从该zip文件中读取字节。因此,我没有将文件对象传递给gzip,而是传递了一个BytesIO对象。这是整个脚本:fromioimportBytesIOimportgzip#writebytestozipfileinmemorymyio=BytesIO()withgzip.GzipFile(fileobj=myio,mode='wb')asg:g.write(b"doesitwork")#readbytesfromzipfileinmemorywithgzip.GzipFile(fileobj=myio