Python内存读写操作示例

本文实例讲述了Python内存读写操作。分享给大家供大家参考,具体如下:

Python中的读写不一定只是文件,还有可能是内存,所以下面实在内存中的读写操作

示例1:

# -*- coding:utf-8 -*-
#! python3
from io import StringIO
f=StringIO()
f.write('everything')
f.write('is')
f.write('possible')
print(f.getvalue())

运行结果:

everythingispossible

在内存中新建一个StringIO,然后进行写入

获取的时候用的是getvalue()函数

而读取的时候可以用一个循环判断,比如:

示例2:

# -*- coding:utf-8 -*-
#! python3
f=StringIO('everything is possible')
while True:
  s=f.readline()
  if s=='':
    break
  print(s.strip())

运行结果:

everything is possible

同理,可以操作不只是str,还可以是二进制数据,所以会用到BytesIO

from io import BytesIO
>>> f = BytesIO()
>>> f.write('中文'.encode('utf-8'))
6
>>> print(f.getvalue())
b'\xe4\xb8\xad\xe6\x96\x87'

如下图所示:

而写入同时也是:

>>> from io import BytesIO
>>> f = BytesIO(b'\xe4\xb8\xad\xe6\x96\x87')
>>> f.read()
b'\xe4\xb8\xad\xe6\x96\x87'

注:这里的测试环境为Python3,如果使用Python2运行上述示例1的话会提示如下错误:

Traceback (most recent call last):
  File "C:\py\jb51PyDemo\src\Demo\strIODemo.py", line 5, in <module>
    f.write('everything')
TypeError: unicode argument expected, got 'str'

解决方法为将

from io import StringIO

更换成:

from io import BytesIO as StringIO

即可运行得到正常结果!

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python进程与线程操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

(0)

相关推荐

  • 简单了解python的内存管理机制

    Python引入了一个机制:引用计数. 引用计数 python内部使用引用计数,来保持追踪内存中的对象,Python内部记录了对象有多少个引用,即引用计数,当对象被创建时就创建了一个引用计数,当对象不再需要时,这个对象的引用计数为0时,它被垃圾回收. 总结一下对象会在一下情况下引用计数加1: 1.对象被创建:x=4 2.另外的别人被创建:y=x 3.被作为参数传递给函数:foo(x) 4.作为容器对象的一个元素:a=[1,x,'33'] 引用计数减少情况 1.一个本地引用离开了它的作用域.比如上

  • python使用pandas处理大数据节省内存技巧(推荐)

    一般来说,用pandas处理小于100兆的数据,性能不是问题.当用pandas来处理100兆至几个G的数据时,将会比较耗时,同时会导致程序因内存不足而运行失败. 当然,像Spark这类的工具能够胜任处理100G至几个T的大数据集,但要想充分发挥这些工具的优势,通常需要比较贵的硬件设备.而且,这些工具不像pandas那样具有丰富的进行高质量数据清洗.探索和分析的特性.对于中等规模的数据,我们的愿望是尽量让pandas继续发挥其优势,而不是换用其他工具. 本文我们讨论pandas的内存使用,展示怎样

  • python内存管理机制原理详解

    python内存管理机制: 引用计数 垃圾回收 内存池 1. 引用计数 当一个python对象被引用时 其引用计数增加 1 ; 当其不再被变量引用时 引用计数减 1 ; 当对象引用计数等于 0 时, 对象被删除(引用计数是一种非常高效的内存管理机制) 2. 垃圾回收 垃圾回收机制: ① 引用计数 , ②标记清除 , ③分带回收 引用计数 : 引用计数也是一种垃圾收集机制, 而且也是一种最直观, 最简单的垃圾收集技术.当python某个对象的引用计数降为 0 时, 说明没有任何引用指向该对象, 该

  • python的内存管理和垃圾回收机制详解

    简单来说python的内存管理机制有三种 1)引用计数 2)垃圾回收 3)内存池 接下来我们来详细讲解这三种管理机制 1,引用计数: 引用计数是一种非常高效的内存管理手段,当一个pyhton对象被引用时其引用计数增加1,当其不再被引用时引用计数减1,当引用计数等于0的时候,对象就被删除了. 2,垃圾回收(这是一个很重要知识点): ①  引用计数 引用计数也是一种垃圾回收机制,而且是一种最直观,最简单的垃圾回收技术. 在Python中每一个对象的核心就是一个结构体PyObject,它的内部有一个引

  • python分块读取大数据,避免内存不足的方法

    如下所示: def read_data(file_name): ''' file_name:文件地址 ''' inputfile = open(file_name, 'rb') #可打开含有中文的地址 data = pd.read_csv(inputfile, iterator=True) loop = True chunkSize = 1000 #一千行一块 chunks = [] while loop: try: chunk = dcs.get_chunk(chunkSize) chunks

  • Python内存读写操作示例

    本文实例讲述了Python内存读写操作.分享给大家供大家参考,具体如下: Python中的读写不一定只是文件,还有可能是内存,所以下面实在内存中的读写操作 示例1: # -*- coding:utf-8 -*- #! python3 from io import StringIO f=StringIO() f.write('everything') f.write('is') f.write('possible') print(f.getvalue()) 运行结果: everythingispo

  • Python文件的操作示例的详细讲解

    1. 文件的读写原理: 文件的读写称为I/O操作. 操作原理: .py文件是用解释器去运行,调用OS操作系统的资源,去操作磁盘上的文件. 操作流程: 在去操作一个文件的文件的时候,首先打开或者创建一个文件,进行读或者写. 读: 从文件拿到内存当中来 写:把内存的文件放入文件中 最后进行关闭资源. 内置函数: open() 可以创建或者打开一个文件 语法规则: file=open(filename [mode,encoding] 打开模式默认为只读 默认文本中的字符编码格式为gbk # 作者:互联

  • python文件读写操作小结

    目录 读文件 写文件 关于open()的mode参数: file_obj.seek(offset,whence=0) 字符编码 读文件 打开一个文件用open()方法(open()返回一个文件对象,它是可迭代的): >>> f = open('test.txt', 'r') r表示是文本文件,rb是二进制文件.(这个mode参数默认值就是r) 如果文件不存在,open()函数就会抛出一个IOError的错误,并且给出错误码和详细的信息告诉你文件不存在: >>> f=op

  • GO文件创建及读写操作示例详解

    目录 三种文件操作比较 ioutil ioutil.ReadFile读 ioutil.WriteFile 写 ioutil.ReadAll 读 ioutil.ReadDir 查看路径下目录信息 ioutil.TempDir 创建临时目录 ioutil.TempFile 创建临时文件 os.file 方法 os.OpenFile() 创建文件 写入数据三种方式 第一种-WriteString( )函数 第二种-Write( )函数 第三种-WriteAt( )函数 读取文件 Read 读取文件 按

  • Go语言文件开关及读写操作示例

    目录 ️ 实战场景 打开关闭文件 读取文件 bufio 读取文件 写文件 ️ 实战场景 本篇博客为大家再次带来 Go 语言的基础知识,这次要学习的内容是 Go 中的文件操作. 打开关闭文件 在 Go 中操作文件,首先要做的就是导入 os 模块,该模块中具备相关函数定义. package main import ( "fmt" "os" ) func main() { // 打开文件 file, err := os.Open("./ca.txt")

  • python文件读写操作与linux shell变量命令交互执行的方法

    本文实例讲述了python文件读写操作与linux shell变量命令交互执行的方法.分享给大家供大家参考.具体如下: python对文件的读写还是挺方便的,与linux shell的交互变量需要转换一下才能用,这比较头疼. 代码如下: 复制代码 代码如下: #coding=utf-8 #!/usr/bin/python import os import time #python执行linux命令 os.system(':>./aa.py') #人机交互输入 S = raw_input("

  • PHP文件打开关闭及读写操作示例解析

    前言 PHP支持文件上传功能,因此学习PHP文件的相关操作是必须的,这篇笔记会去记录PHP文件系统的相关知识. 文件打开与关闭 文件处理包括读取.关闭.重写等,例如,访问一个文件需要3步:打开文件.读写文件和关闭文件.其他的操作要么是包含在读写文件中(如显示内容.写入内容等),要么与文件自身的属性有关系(如文件遍历.文件改名等). 1.打开文件 在PHP中使用fopen()函数打开文件,fopen()函数的语法如下: resource fopen ( string filename, strin

  • python连接读写操作redis的完整代码实例

    python读写操作redis数据库 redis有16个逻辑数据库(编号db0到db15),每个逻辑数据库数据是隔离的,默认db0.选择第n个逻辑数据库,命令select n ,python连接时可指定数据库编号(0~15). 为python安装支持库: pip install redis 连接redis 第一种方式,直连: import redis def redis_opt(): redis_conn = redis.Redis(host='127.0.0.1', port=6379, pa

  • python config文件的读写操作示例

    本文实例讲述了python config文件的读写操作.分享给大家供大家参考,具体如下: 1.设置配置文件 [mysql] host = 1234 port = 3306 user = root password = Zhsy08241128 database = leartd 2.读取配置文件 import configparser import os conf= configparser.ConfigParser() def readConf(): '''读取配置文件''' root_pat

  • Python引用计数操作示例

    本文实例讲述了Python引用计数操作.分享给大家供大家参考,具体如下: 为了简化内存管理,Python通过引用计数机制实现了自动的垃圾回收功能,Python中的每个对象都有一个引用计数,用来计数该对象在不同场所分别被引用了多少次.每当引用一次Python对象,相应的引用计数就增1,每当消毁一次Python对象,则相应的引用就减1,只有当引用计数为零时,才真正从内存中删除Python对象. import ctypes def get_ref(obj): """ returns

随机推荐