清洁表格
Hoppy 从数据柜里抽出一张小小的 CSV 表。行和列倒是排好了,可每个格子边上还沾着灰:有的前后多了空白,有的两头挂着轻轻的脏符号,整张表看起来像“差一点就能用了”。
这正好是今天的重点:把第一章学过的字符串清理动作,真的拿来服务一份记录文件。我们不是只整理一条字符串,而是对表里的多行记录重复做同样的小清理。
一格一格会清理后,就能一行一行把表收干净
在第一章里,strip() 帮你刷过字符串边缘。现在这个动作没有变,只是使用场景更像真实记录:表里每一行都拆成几个字段后,你要对每个字段重复做同样的轻整理。
raw_cells = [" moss compass ", " *drawer-2* ", " keeper?? "]
clean_cells = []
for cell in raw_cells:
clean_cells.append(cell.strip(" *?"))
print("Clean cells:", clean_cells)
这里还不是今天整道题:没有读文件,也没有重组完整 CSV 行。它只是先示范一个关键感觉——同一个清理动作,可以连续用在一组值上。
今天的任务:把 cleaner_table.csv 里的脏字段逐行擦干净
starter 已经帮你读好了 cleaner_table.csv,并把表头放进 header_line,把真正需要处理的数据行放进 dirty_rows。你的任务是把每一行拆开、清理、再重新拼成干净的 CSV 行,收进 cleaned_rows。
运行 starter,先看看表头长什么样,再看几条还没清理的数据行。你会发现每一行都还是逗号分隔的文本。
对 dirty_rows 里的每一条 row 做循环。先用 row.split(",") 拆成三个字段,再对每个字段做轻量清理。
这张小表里的脏东西都很轻:只是首尾空白和少量 *、!、#、?。可以用 strip(" *!#?") 这种方式把它们从字段两头擦掉。
把清理后的三个字段重新拼成一条逗号分隔的字符串,然后 append 到 cleaned_rows。运行后,输出里应该能看到整洁版结果。
今天只练“小表轻清理”:按行循环、按字段拆开、做首尾小修整、输出整理后的结果。我们不展开复杂异常行,不讲大型数据清洗,也不进入数据分析。
参考答案点击展开点击收起
with open("cleaner_table.csv", "r", encoding="utf-8") as file:
lines = file.read().splitlines()
header_line = lines[0]
dirty_rows = lines[1:]
print("Header:", header_line)
print("Dirty rows:", dirty_rows)
cleaned_rows = []
for row in dirty_rows:
item_name, keeper_name, table_slot = row.split(",")
clean_item_name = item_name.strip(" *!#?")
clean_keeper_name = keeper_name.strip(" *!#?")
clean_table_slot = table_slot.strip(" *!#?")
cleaned_row = clean_item_name + "," + clean_keeper_name + "," + clean_table_slot
cleaned_rows.append(cleaned_row)
print("Cleaned rows:", cleaned_rows)高级技巧想更进一步?点击展开点击收起
这节课最值得带走的感觉是:前面学过的字符串动作,并没有停留在“单条文本小练习”里。到了真实记录文件里,它们会一遍又一遍地出现,帮你把一张表慢慢收拾干净。
下一课,Hoppy 会继续往前走:不只是清理现成记录,还要感受普通文本和结构化记录之间其实可以互相转换。