🐸

逗号表格

数据与文本工具python-data-tinkerer-25-the-comma-sheets
奖励: 120 XP
|

逗号表格

Hoppy 拉开数据柜的新抽屉,发现里面不是 JSON 卷轴,而是几张用逗号隔开的货物表。乍看之下它们只是几行普通文字,可再仔细一点,你会发现每一行都像一条记录,每一列都在讲同一种信息。

今天这节课的目标很单纯:建立对 CSV 的第一印象。它不是“一整段长字符串”,而是一种按行和列组织起来的文本表格。

CSV 看起来像文本,但它的形状更像一张小表

CSV 是 comma-separated values 的缩写。你可以先把它理解成:每一行是一条记录,每一列是一个字段,而第一行常常是表头,专门告诉你每列代表什么。

mini_sheet = """crate_id,item_name
A-1,fern rope
A-2,moon lamp"""

lines = mini_sheet.splitlines()
header = lines[0].split(",")
first_row = lines[1].split(",")

print("Header:", header)
print("First item:", first_row[1])

这里最值得抓住的,不是某个 API 名字,而是形状:第一行是列名,后面每一行都是一条记录。逗号只是帮我们把一行切成一列一列的边界。

今天的任务:先看原始 CSV,再拆出表头和第一条记录

starter 已经帮你读好了 cargo_sheet.csv,并先把原始文本打印出来。你的任务是继续把这份表拆成更容易看懂的部分:表头、第一行记录,以及其中两个字段。

1
先盯住原始文本的样子

运行 starter,先看一眼 cargo_sheet.csv 的原始样子。注意哪里是换行,哪里是逗号。你会看到:CSV 虽然是文本,但明显带着“表格形状”。

2
把文本拆成行,再把一行拆成列

starter 已经准备好了 rows。把 header_columns 设成第一行拆出来的列名列表,再把 first_row_columns 设成第一条记录拆出来的列值列表。

3
读取第一条记录里的两个字段

first_row_columns 里读出 first_crate_idfirst_item_name。这样你就不只是“看见一整张表”,也开始会从表里拿一条具体记录了。

先把边界收在最小范围

今天只练 CSV 的形状:行、列、表头,以及读取一条简单记录。我们不讲 Pandas,不讲 Excel 自动化,也不做复杂脏数据清洗。

参考答案
点击展开
参考答案:
with open("cargo_sheet.csv", "r", encoding="utf-8") as file:
  csv_text = file.read()

print("Raw CSV text:")
print(csv_text)

rows = csv_text.strip().splitlines()

header_columns = rows[0].split(",")
first_row_columns = rows[1].split(",")
first_crate_id = first_row_columns[0]
first_item_name = first_row_columns[1]

print("Header columns:", header_columns)
print("First row columns:", first_row_columns)
print("First crate id:", first_crate_id)
print("First item name:", first_item_name)
高级技巧
想更进一步?点击展开

今天最重要的直觉是:CSV 虽然是纯文本,但它不是随便排的一长串字。只要你看见“按行分记录、按逗号分列、第一行是表头”这几个信号,就已经开始会读这种表格了。

下一课,Hoppy 才会碰到更真实一点的情况:表格里有些字段不够干净,需要做一点轻量清理。

Loading...
终端输出
Terminal
Ready to run...