題目描述
在一個資料夾及其子資料夾中散落著多個 .csv 檔案。每個 CSV 的第二欄都是整數。
請實作 process_path(path):
- 遞迴遍歷資料夾
- 找出所有
.csv - 讀取每行並累加第二欄的整數
- 回傳總和
範例:
.
|-- a
| `-- b
| `-- ex.csv
|-- example.csv
`-- ignoreme.log
ex.csv:
a,5,-1,-1,0
a,10,-1,-1,0
example.csv:
b,0,-1,-1,0
b,-3,-1,-1,0
結果:12
解題思路
使用 os.walk 遍歷目錄,篩選 .csv 後逐行累加第二欄。
Python 參考實作
import os
import csv
def process_csv(filepath: str) -> int:
total = 0
with open(filepath, 'r', encoding='utf-8', errors='ignore') as f:
reader = csv.reader(f)
for row in reader:
if len(row) >= 2:
total += int(row[1])
return total
def process_path(path: str) -> int:
total = 0
for root, _, files in os.walk(path):
for name in files:
if name.endswith('.csv'):
total += process_csv(os.path.join(root, name))
return total
複雜度
- 時間:與所有 CSV 行數總量成正比
- 空間:
O(1)(串流讀取)
需要面試輔助服務?聯絡 OA VO Service
- 📧 Email: [email protected]
- 📱 Phone: +86 17863968105
需要面試真題? 立刻聯繫微信 Coding0201,獲得真題。