摘要:可以傳入一個(gè)字符初始化。只能處理字符串類型的數(shù)據(jù),可以用于處理二進(jìn)制類型的數(shù)據(jù)。在搜索文檔的時(shí)候,發(fā)現(xiàn)在下也有一個(gè),而且兩者非常類似。
之前我們所說(shuō)的都是讀寫真正的文件。其實(shí)我們也可以在內(nèi)存中虛擬一個(gè)文件進(jìn)行讀寫。Python給咱們提供的官方module有io.StringIO和io.BytesIO.
io.StringIOString IO用于在內(nèi)存在讀寫字符串。
StringIO可以傳入一個(gè)字符初始化。例如
string = StringIO("This is Demo")
例如:
from io import StringIO s = StringIO() s.write("Yes YEs") s.seek(0) # 將指針撥回到開始位置,否則將會(huì)讀取不到任何東西 content = s.read() print content
StringIO創(chuàng)建的是一個(gè)file-like object,擁有File Object的所有方法。StringIO還有兩個(gè)特殊的方法,就是getvalue()方法和close()方法。
getvalue()方法用于獲取StringIO中寫入的內(nèi)容
close()方法關(guān)閉StringIO,釋放內(nèi)存。
io.BytesIOStringIO只能處理字符串類型的數(shù)據(jù),BytesIO可以用于處理二進(jìn)制類型的數(shù)據(jù)。
BytesIO的用法與StringIO類似。
在搜索文檔的時(shí)候,發(fā)現(xiàn)在StringIO下也有一個(gè)StringIO,而且兩者非常類似。所有g(shù)oogle了一下。在stackoverflow有一個(gè)回答:
回答的原文鏈接:http://stackoverflow.com/ques...
An in-memory stream for unicode text. It inherits TextIOWrapper.
This module implements a file-like class, StringIO, that reads and writes a string buffer (also known as memory files).
io.StringIO is a class. It handles Unicode. It reflects the preferred Python 3 library structure.StringIO.StringIO is a class. It handles strings. It reflects the legacy Python 2 library structure.
What should be preferred?
Always move forward toward the new library organization. The io.open should be used to replace the built-in Unicode-unaware open.Forward. Move forward.
大意就是StringIO是python2的遺產(chǎn),后續(xù)會(huì)被io.StringIO取代.
建議使用io.StringIO.
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/38337.html
摘要:前面的一些碎碎念兩天的耽擱,思考了下,雖然需要全面基礎(chǔ)的學(xué)習(xí),但是重點(diǎn)還是應(yīng)該放在實(shí)戰(zhàn)上。更簡(jiǎn)潔的版本是如果文件很小,一次性讀取最方便如果不能確定文件大小,反復(fù)調(diào)用比較保險(xiǎn)如果是配置文件,調(diào)用最方便。 前面的一些碎碎念 兩天的耽擱,思考了下,雖然需要全面基礎(chǔ)的學(xué)習(xí),但是重點(diǎn)還是應(yīng)該放在實(shí)戰(zhàn)上。所以后續(xù)要速速的推倒這個(gè)教程了,用一些數(shù)據(jù)來(lái)實(shí)行一些分析:) 認(rèn)真學(xué)習(xí)的分割線 打打打打雞血!...
摘要:?jiǎn)栴}如何像操作文件一樣操作或類似于中的解決方案使用模塊中的和調(diào)用他們的構(gòu)造函數(shù)得到一個(gè)對(duì)象然后就可以像文件一樣進(jìn)行等等操作討論當(dāng)需要模擬一個(gè)普通文件而且又不想真正的進(jìn)行磁盤的時(shí)候比如編寫單元測(cè)試的時(shí)候,可以用上這兩個(gè)類但是需要注意的是,和并 問(wèn)題 如何像操作文件一樣操作str或bytes 類似于C++中的stringstream 解決方案 使用io模塊中的StringIO和BytesI...
摘要:注本文的作者是。原文的地址為該筆記向你展示了編寫不會(huì)過(guò)時(shí)的兼容和的代碼風(fēng)格。它是在的演講,。基本語(yǔ)法差異為了打印出多個(gè)。方方和工具沒(méi)有提供一個(gè)選項(xiàng)自動(dòng)完成這個(gè)。如果你為了個(gè)項(xiàng)目編寫新的代碼庫(kù),你可以用一個(gè)字符模塊標(biāo)記所有的字符字面量。 注:本文的作者是 Ed Schofield。原文的地址為: Cheat Sheet: Writing Python 2-3 compatible ...
大家在工作中,有沒(méi)有遇到這個(gè)問(wèn)題,那就是在使用python的時(shí)候,無(wú)法實(shí)現(xiàn)不寫硬盤上傳文件,這樣會(huì)導(dǎo)致工作效率大大降低。那么,怎么才能夠?qū)崿F(xiàn)python不讀寫硬盤上傳文件呢?下面給大家列舉了幾種實(shí)例,希望能夠?qū)Υ蠹規(guī)?lái)幫助,祝大家在工作中,早日實(shí)現(xiàn)財(cái)富自由。 引言 假如說(shuō)你寫了一個(gè)api,并且能夠接受client上傳的文件,然后在上傳到oss,那么這個(gè)時(shí)候,你會(huì)怎么做?先寫硬盤,然后在...
閱讀 1498·2021-11-24 11:16
閱讀 2706·2021-07-28 12:32
閱讀 2312·2019-08-30 11:22
閱讀 1452·2019-08-30 11:01
閱讀 608·2019-08-29 16:24
閱讀 3554·2019-08-29 12:52
閱讀 1635·2019-08-29 12:15
閱讀 1344·2019-08-29 11:18