我能找到的就是这句话:
创建文本流的最简单方法是使用open(),可选择指定编码:
f = open("myfile.txt", "r", encoding="utf-8")内存中的文本流也可用作StringIO对象:
f = io.StringIO("some initial text data")
但是,这根本没有给我什么时候应该使用open(),io.StringIO反之亦然.我知道他们在幕后的工作方式并不完全相同.但是为什么有人会open()用Python 3呢?
区别在于:open获取文件名(以及其他一些参数,如模式或编码),io.StringIO采用普通字符串并返回类似文件的对象.
因此:
open读取文件;StringIO时,你需要一个类似文件的对象,你想传递一个字符串的内容.一个例子StringIO:
import csv
import io
reader = csv.reader(io.StringIO("a,b,c\n1,2,3"))
print ([r for r in reader])
# output [['a', 'b', 'c'], ['1', '2', '3']]
Run Code Online (Sandbox Code Playgroud)
它非常有用,因为您可以使用预期文件的字符串.
在通常的情况下,使用磁盘上的csv文件,您可以编写如下内容:
with open(<path/to/file.csv>, ...) as f:
reader = csv.reader(f, ...)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2445 次 |
| 最近记录: |