1. StringIO/cStringIO是什么
这个模块提供了一个类,这个类的实例就像是一个文件一样可以读写,实际上读写的是一个字符串缓存,也可以称之为内存文件。
StringIO和文件对象拥有共同的父类IOBase,因此方法基本上都是一致的,StringIO就可以看做是一个内存文件。
想了一下,StringIO可能就相当于Java中的StringBuffer或者StringBuilder之类的吧...它是否也可以当做一个写文件缓存,当我要写很多零碎的内容的时候我先把内容都写到StringIO中,当写StringIO完了我再读出来写入到磁盘中,这不就能实现缓存写了吗O(∩_∩)O哈哈~
在py2.x中cStringIO是c语言版本的StringIO,它的性能要稍微好一些,但是py3.x已经没有cStringIO了。
2. 如何使用
StringIO的使用与普通的文件对象差不多,下面是一个简单的例子:#! /usr/bin/python
from io import StringIO
if __name__ == '__main__':
f = StringIO()
f.write('first\n')
f.write('second\n')
f_content = f.getvalue()
print(f_content)
输出:first
second
参考资料:
1. StringIO/cStringIO是什么这个模块提供了一个类,这个类的实例就像是一个文件一样可以读写,实际上读写的是一个字符串缓存,也可以称之为内存文件。StringIO和文件对象拥有共同的父类IOBase,因此方法基本上都是一致的,StringIO就可以看做是一个内存文件。想了一下,StringIO可能就相当于Java中的StringBuffer或者StringBuilder之类的吧.....
Python
文件
操作一,
文件
的编码与解码二,二进制
文件
的优点三,
文件
的打开(打开权限)1.调用open()方法(1). 方法的含义(2).方法的常用形式(3).mode的几种模式默认模式读模式写模式追加模式四,
文件
的读五,
文件
的写六,游标操作七,关闭
文件
八,
文件
加密九,序列化操作
一,
文件
的编码与解码
二,二进制
文件
的优点
三,
文件
的打开(打开权限)
1.调用open()方法
(1). 方法的含义...
使用
python
读取一个相对较大
内存
的
文件
,比如电脑运行
内存
只有1G,但是读取的
文件
大小为 2G,这个时候怎么处理呢?有人说直接用 open函数不就好了吗?但是如果你直接使用的话,会把
文件
一次性读取存在
内存
中,这个时候就会出现 OOM(
内存
溢出)即MemoryError,那么我们应该怎么处理呢?
我们先来看看
python
读取
文件
后,获取
文件
内容的几种方法;
1、保存列表为.txt
文件
#1/list写入txtipTable = ['158.59.194.213', '18.9.14.13', '58.59.14.21']
fileObject = open('sampleList.txt', 'w')
for ip in ipTable:
fileObject.write(ip)
fileObject.write('\n
from
String
IO
import
String
#在
python
2.x中它还有个孪生兄弟,运行速度比它快,用c实现的
from c
String
IO
import
String
IO
#在
python
3.x中,
String
IO
已经在
io
模块
中了,导入方法
from
io
import
String
IO
fr...
#
String
IO
还有一个对应的c语言版的实现,它有更好的性能,但是稍有一点点的区别:
# c
String
IO
没有len和pos属性。(还有,c
String
IO
不支持Unicode编码)
# 如果实例化一个带有默认数据的c
String
IO
.Strin
Python
的
String
IO
库用于实现在
内存
缓冲区读写
文件
,看官方对
String
IO
的介绍,第一句话就是:The module implements file-like class, Sting
IO
,
that reads and writes a
string
buffer(also known as memory files)
c
String
IO
和
String
IO
用法相同,速度更快,常
该
模块
实现了一个类
文件
的
String
IO
类,用于读写字符串缓冲(也称为
内存
文件
).参照
文件
对象的操作说明(
文件
对象部分).(字符串参照 str 和 unicode).class
String
IO
.
String
IO
([buffer])
当创建一个
String
IO
对象时,可以传递一个字符串至构造函数来初始化.如果初始化时没有提供字符串,则创建一个空的
String
IO
对象.在这两种情况下
```
python
with codecs.open('file.txt', 'r', encoding='utf-8') as f:
file_content = f.read()
接下来,使用 pandas 的 read_csv 方法将
文件
内容转换为 DataFrame:
```
python
df = pd.read_csv(pd.compat.
String
IO
(file_content), delimiter='\t')
其中,pd.compat.
String
IO
(file_content) 将字符串转换为类似
文件
对象的
String
IO
对象,delimiter='\t' 指定分隔符为制表符,可以根据实际情况进行调整。
完整代码示例:
```
python
import pandas as pd
import codecs
with codecs.open('file.txt', 'r', encoding='utf-8') as f:
file_content = f.read()
df = pd.read_csv(pd.compat.
String
IO
(file_content), delimiter='\t')