python中的StringIO与cStringI"/>
我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python中的StringIO与cSt

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python中的StringIO与cSt

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">python中的StringIO与cStringIO</span>


StringIO与cStringIO类似,都是向内存中写入文件,其操作与文件操作类似(不敢说相同,但是至少读写是一样的)。一StringIO为例如下:
import StringIO
a = StringIO.StringIO('title')
a.write('content1\n')
a.write('content2')
a.seek(0) #必须指定文件指针位置到文件开头,否则无法读出数据
print a.read()
a.close() #必须和文件一样关闭
输出结果是:
content1
content2
为什么title没有了呢?
因为实例化一个StringIO之后,文件指针是在文件开头的,也就是指向‘title’开头的位置,之后写入的‘conttent1’将其覆盖了而已。
如果不想让’title‘被覆盖,那么需要将文件指针移动到’title‘末尾,即利用a.seek()函数。
但是这里StringIO文件类似一个列表,和文件操作不一样,a.seek(2)不代表文件末尾,而代表写入参数的第三个字符的位置,即’title‘中第二个’t'的位置。
或者,直接实例化一个空的StringIO,然后再写入内容,一切烦恼就都没有了。


cStringIO不同之处在于,如果实例化一个带有默认数据的cStringIO.StringIO类。那么该实例是read-only的:
import StringIO
a = cStringIO.StringIO('title')
a.write('content1\n')


返回AttributeError: 'cstringIO.StringI' object has no attribute ‘write’


但是如果实例化时不提供默认参数,那么则是可以读写的。注意到

import cStringIO, StringIO
a = StringIO.StringIO()
b = StringIO.StringIO('a')
c = cStringIO.StringIO()
d = cStringIO.StringIO('a')
print type(a)
print type(b)
print type(c)
print type(d)
print a.__class__
print b.__class__
print c.__class__
print d.__class__

返回: <type instance>
<type instance>
<type cStringIO.StringO>
<type cStringIO.StringI>
<class StringIO.StringIO at XXXX>
<class StringIO.StringIO at XXXX>
<type cStringIO.StringO>
<type cStringIO.StringI>
但是说明带默认参数的 cStringIO.StringIO生成的是cStringIO.StringI,它是read-only的,无默认参数的是cStringIO.StringO,它是可读写的。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python中的StringIO与cSt

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python中的StringIO与cSt

python中的StringIO与cStringI
2023-01-31

Python的StringIO模块和cS

1.StringIO模块StringIO用于像文件一样对字符串缓冲区或者叫做内存文件进行读写。    f = StringIO()      # ready for writing    f = StringIO(buf)   # read
2023-01-31

Python中CST 和AST类有哪些相同的地方

这篇文章给大家介绍Python中CST 和AST类有哪些相同的地方,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Python CST 和AST 类似,都是语法分析所获得的中间结果。他们的不同之处在于,CST直接对应语法
2023-06-17

怎么在python中使用StringIO进行读写

怎么在python中使用StringIO进行读写?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。python可以做什么Python是一种编程语言,内置了许多有效的
2023-06-14

Python中的 // 与 / 的区别

通常C/C++中,"/ " 算术运算符的计算结果是根据参与运算的两边的数据决定的,比如:  6 / 3 = 2 ; 6,3都是整数,那么结果也就是整数2;  6.0 / 3.0 = 2.0 ; 6.0,3.0是浮点数,那么结果也是浮点数2.
2023-01-31

Python中的None与 NULL(即

1.首先要了解Pythond的对象的概念:Python中,万物皆对象,所有的操作都是针对对象的,那什么是对象,5是一个int对象,‘oblong’是一个str对象,异常也是一个对象,抽象一点是,人,猫,够也是一个对象那对于一个对象,它就有包
2023-01-31

python中TCP与UDP的区别

这篇文章将为大家详细讲解有关python中TCP与UDP的区别,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统语言相比
2023-06-14

Python中的循环与跳出

--start--for循环: 1 for i in range(3): 2 user_input = input("Your username:") 3 passwd = int(input("Your password:
2023-01-31

Python中的字典与集合

Dictionary:字典     Set:集合字典的语法:Dictionary字典(键值对) 语法: dictionary = {key:value,key:value,key n:value n} 与 C# dictionary同理创建
2023-01-31

Day5-python中的模块与包

1.什么是模块 最常见的场景,一个模块就是包含一组功能的python文件,例如module.py,模块名是module 可以使用import module,四个通用类别: 1、使用python编写的
2023-01-31

Python中bytes与str的区别

Python中bytes与str的区别主要是它们是两种不同的数据类型。bytes是二进制数据,而str是Unicode文本。在Python中,bytes是一个类型,用于代表字节串,是不可变序列,包含范围为0 <= x < 256的整数。bytes可以看做是bytearray的不可变版本,它同样支持索引和切片操作。
Python中bytes与str的区别
2023-10-29

Python中append()与exte

列表方法append()和extend()之间的差异:append:在最后追加对象 x = [1, 2, 3]x.append([4, 5])print (x)结果 [1, 2, 3, [4, 5]] extend:通过追加加迭代中的元素来
2023-01-31

python中socket与socket

一、socket模块socket又叫套接字,是网络编程中的一个基本组件,是两个端点的程序之间的“信息通道”程序可分布在不同的计算机上(通过网络连接),通过socket套接字相互发送信息。python中的大多数的网络编程都 隐藏了socket
2023-01-31

python中的return的返回与执行

Python中的return语句用于函数的返回值,它有两个主要的作用:一是用于将结果返回给调用者,二是用于提前终止函数的执行。在Python中,函数可以通过return语句返回一个或多个值。当遇到return语句时,函数将立即停止执行,并
python中的return的返回与执行
2024-02-22

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录