正在加载...

CSV 表格

CSV 是由文本行组成的表格。每一行就是表格的一行,逗号标出单元格的边界。上一页把一个字典放进了一行里。这里这一行本身就是表格的一行。不会打开任何文件。这些行放在内存里的文本盒中。

文本盒里的三行

python
import csv
from io import StringIO
box = StringIO()
pen = csv.writer(box)
pen.writerow(["name", "city"])
pen.writerow(["mina", "qom"])
pen.writerow(["lida", "yazd, iran"])
print(box.getvalue(), end="")

屏幕上有三行。第一行是 name,city,这是标签,不是客人。第二行是 mina,qom,也就是 mina 和 qom 两个单元格。第三行是 lida,"yazd, iran"。因为城市名里本身有逗号,所以加了引号。end="" 告诉 print 不要自己再加换行,所以屏幕到第三行就结束。盒子里的内容本来就以换行结尾。

客人和城市

python
import csv
from io import StringIO
text = "name,city\nmina,qom\nlida,\"yazd, iran\"\n"
box = StringIO(text)
rows = list(csv.reader(box))
print(rows[1][0])
print(rows[2][1])

屏幕上先显示 mina,再显示 yazd, iran。这个程序从头开始,不会再运行写入的那部分。rows[1][0] 是第二行的第一个单元格,也就是客人 mina。rows[2][1] 是城市 yazd, iran。引号不属于城市。这一行仍然只有两个单元格。iran 仍和 yazd 在一起。

如果你自己在每个逗号处切开第三行,iran 看起来就像第三个单元格。读取器不会在那里切。引号只标出一个单元格,然后就去掉了。这些程序里没有 open,没有 Path,没有 JSON,也没有任何内容存进文件。

下一页是模块。这一页只写入行,再读出单元格。

先是行,再是单元格

第一个程序的屏幕是 name,city,然后是 mina,qom,再然后是 lida,"yazd, iran"。读取器随后显示 mina 和 yazd, iran。引号不属于城市。不会打开任何文件。下一页是模块。

🧠 测试您的知识

准备开始

测试您的知识

通过这个互动测验挑战自己,看看你对这个主题的理解程度如何

❓
6
问题
🎯
70%
及格要求
♾️
∞
时间
🔄
∞
尝试次数

📝 说明

  • 仔细阅读每个问题
  • 为每个问题选择最佳答案
  • 您可以随时重新参加测验
  • 您的进度将显示在顶部