《Python Cookbook 3rd》笔记(5.6):字符串的 I/O 操作
生活随笔
收集整理的這篇文章主要介紹了
《Python Cookbook 3rd》笔记(5.6):字符串的 I/O 操作
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
字符串的 I/O 操作
問題
你想使用操作類文件對象的程序來操作文本或二進制字符串。
解法
使用 io.StringIO() 和 io.BytesIO() 類來創建類文件對象操作字符串數據。比如:
>>> s = io.StringIO() >>> s.write('Hello World\n') 12 >>> print('This is a test', file=s) 15 >>> # Get all of the data written so far >>> s.getvalue() 'Hello World\nThis is a test\n' >>>>>> # Wrap a file interface around an existing string >>> s = io.StringIO('Hello\nWorld\n') >>> s.read(4) 'Hell' >>> s.read() 'o\nWorld\n' >>>io.StringIO 只能用于文本。如果你要操作二進制數據,要使用 io.BytesIO 類來代替。比如:
>>> s = io.BytesIO() >>> s.write(b'binary data') >>> s.getvalue() b'binary data' >>>討論
當你想模擬一個普通的文件的時候 StringIO 和 BytesIO 類是很有用的。比如,在單元測試中,你可以使用 StringIO 來創建一個包含測試數據的類文件對象,這個對象可以被傳給某個參數為普通文件對象的函數。
需要注意的是, StringIO 和 BytesIO 實例并沒有正確的整數類型的文件描述符。因此,它們不能在那些需要使用真實的系統級文件如文件,管道或者是套接字的程序中使用。
總結
以上是生活随笔為你收集整理的《Python Cookbook 3rd》笔记(5.6):字符串的 I/O 操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c++基础学习(12)--(多线程、We
- 下一篇: Python(20)-高级数据类型的公共