返回顶部
首页 > 资讯 > 后端开发 > Python >Python中的StringIO与cSt
  • 324
分享到

Python中的StringIO与cSt

PythonStringIOcSt 2023-01-31 05:01:30 324人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

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

<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,它是可读写的。

--结束END--

本文标题: Python中的StringIO与cSt

本文链接: https://lsjlt.com/news/188966.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python中的StringIO与cSt
    <span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">python中的StringIO与c...
    99+
    2023-01-31
    Python StringIO cSt
  • Python的StringIO模块和cS
    1.StringIO模块StringIO用于像文件一样对字符串缓冲区或者叫做内存文件进行读写。    f = StringIO()      # ready for writing    f = StringIO(buf)   # read...
    99+
    2023-01-31
    模块 Python StringIO
  • Python中CST 和AST类有哪些相同的地方
    这篇文章给大家介绍Python中CST 和AST类有哪些相同的地方,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Python CST 和AST 类似,都是语法分析所获得的中间结果。他们的不同之处在于,CST直接对应语法...
    99+
    2023-06-17
  • 怎么在python中使用StringIO进行读写
    怎么在python中使用StringIO进行读写?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。python可以做什么Python是一种编程语言,内置了许多有效的...
    99+
    2023-06-14
  • Python中的Set与dict
    目录一、Set集合类型二、set和dict的数据类型限制一、Set 集合类型 Set 集合类型 (交差并补) 特点 :无序 , 自动去重 集合用{}表示,元素间用逗号分隔建立集合类型...
    99+
    2024-04-02
  • python中/与//的区别
    python中“/”表示为浮点数的除法,其返回结果为浮点数;而“//”表示的是整数除法,其返回结果为整数。实例:print("6 // 4 = " + str(6 // 4))print("6 / 4 =" + str(6 / 4))输出结...
    99+
    2024-04-02
  • python中的classmethod与staticmethod
    目录1.静态方法(staticmethod)2.类方法(classmethod)为什么会出现classmethod1.静态方法(staticmethod) 静态方法: @static...
    99+
    2024-04-02
  • Python中的 // 与 / 的区别
    通常C/C++中,"/ " 算术运算符的计算结果是根据参与运算的两边的数据决定的,比如:  6 / 3 = 2 ; 6,3都是整数,那么结果也就是整数2;  6.0 / 3.0 = 2.0 ; 6.0,3.0是浮点数,那么结果也是浮点数2...
    99+
    2023-01-31
    区别 Python
  • Python中的None与 NULL(即
    1.首先要了解Pythond的对象的概念: Python中,万物皆对象,所有的操作都是针对对象的,那什么是对象,5是一个int对象,‘oblong’是一个str对象,异常也是一个对象,抽象一点是,人,猫,够也是一个对象 那对于一个...
    99+
    2023-01-31
    Python NULL
  • python中TCP与UDP的区别
    这篇文章将为大家详细讲解有关python中TCP与UDP的区别,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统语言相比...
    99+
    2023-06-14
  • Python中的字典与集合
    Dictionary:字典     Set:集合 字典的语法: Dictionary字典(键值对) 语法: dictionary = {key:value,key:value,key n:value n} 与 C# dictionary...
    99+
    2023-01-31
    字典 Python
  • Day5-python中的模块与包
    1.什么是模块 最常见的场景,一个模块就是包含一组功能的python文件,例如module.py,模块名是module 可以使用import module,四个通用类别: 1、使用pytho...
    99+
    2023-01-31
    模块 python
  • Python中的循环与跳出
    --start-- for循环: 1 for i in range(3): 2 user_input = input("Your username:") 3 passwd = int(input("Yo...
    99+
    2023-01-31
    Python
  • Python中的变量与常量
    目录一、变量、常量的区别二、变量1. Python中的变量不需要声明类型2. 用“=”号来给变量赋值3. 赋值4. 变量5. “=”6. Python允许同时为多个变量赋值三、常量四...
    99+
    2024-04-02
  • Python中bytes与str的区别
    一、两种不同的数据类型 bytes是二进制数据,而str是Unicode文本。 在Python中,bytes是一个类型,用于代表字节串,是不可变序列,包含范围为0 <= x < 256的整数。bytes可以看做是bytearra...
    99+
    2023-10-29
    区别 Python bytes
  • Python中append()与exte
    列表方法append()和extend()之间的差异: append:在最后追加对象   x = [1, 2, 3] x.append([4, 5]) print (x) 结果   [1, 2, 3, [4, 5]]   extend:通...
    99+
    2023-01-31
    Python append exte
  • python中socket与socket
    一、socket模块socket又叫套接字,是网络编程中的一个基本组件,是两个端点的程序之间的“信息通道”程序可分布在不同的计算机上(通过网络连接),通过socket套接字相互发送信息。python中的大多数的网络编程都 隐藏了socket...
    99+
    2023-01-31
    python socket
  • Python中dumps与dump及loads与load的区别
    前言:  json 模块提供了一种很简单的方式来编码和解码JSON数据。 其中两个主要的函数是 json.dumps() 和 json.loads()。  1、j...
    99+
    2024-04-02
  • python中的return的返回与执行
    Python中的return语句用于函数的返回值,它有两个主要的作用:一是用于将结果返回给调用者,二是用于提前终止函数的执行。 在Python中,函数可以通过return语句返回一个或...
    99+
    2024-02-22
    返回值 返回类型 返回: 返回表达式 执行: 可迭代对象
  • Python中is与==判断的区别
    在 Python 中,比较两个对象(变量)是否相等,可以用 “is” 和 “==” 操作,但它俩有什么区别?什么时候用 “is”,什么时候用 “==” ?在面试时,发现不少候选人很难把这两者完全说清楚,因此...
    99+
    2022-06-04
    区别 Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作