rust表格文件处理

为什么选择 csv 而不是 excel

  • Excel 是一个二进制文件,只能用 Microsoft Excel 文档
  • Excel 导入数据时消耗更多的内存
  • Csv 是纯文本格式
  • 所以您应该转换一下
rust 复制代码
// 需求:拿到title是Professor的人的姓名

const MOCK_DATA: &'static str = include_str!("dept_data.csv");

// 先声明包含vector的工具结构体
struct Names<'a> {
    inner: Vec<&'a str>,
}

struct Titles<'a> {
    inner: Vec<&'a str>,
}

// 创建结构体返回结果
#[derive(Debug)]
struct ProfessorInfo{
    name: String,
    title: String,
}

impl ProfessorInfo {
    // 生成vec的方法
    fn generate_vec(names: Names, titles: Titles) -> Vec<ProfessorInfo>{
        let data = names.inner.iter().zip(titles.inner.iter());
        let mut res_vec: Vec<ProfessorInfo> = Vec::new();
        for (name, title) in data
            .filter(|tuple_item|tuple_item.1.to_string().contains("Professor"))
            .take(3)
        {
            let item = ProfessorInfo {
                name: name.to_string(),
                title: title.to_string(),
            };
            res_vec.push(item);
        }
        res_vec
    }
}


fn main() {
    // 从csv字符串中提取数据
    let data: Vec<_> = MOCK_DATA.split('\n').skip(1).collect();

    let names: Vec<_> = data.iter()
        .filter_map(|line| line.split(',').nth(1))
        .collect();
    let names = Names { inner: names };

    let titles: Vec<_> = data.iter()
        .filter_map(|line| line.split(',').nth(4))
        .collect();
    let titles = Titles { inner: titles };

    let back = ProfessorInfo::generate_vec(names, titles);
    println!("{:?}", back);
}
相关推荐
雪度娃娃4 小时前
转向现代C++——优先选用nullptr而不是0和NULL
开发语言·c++
zyk_computer5 小时前
AI 时代,或许 Rust 比 Python 更合适
人工智能·后端·python·ai·rust·ai编程·vibe coding
萌新小码农‍5 小时前
python装饰器
开发语言·前端·python
KK溜了溜了5 小时前
Python从入门到精通
服务器·开发语言·python
故事和你915 小时前
洛谷-【图论2-1】树5
开发语言·数据结构·c++·算法·动态规划·图论
threelab5 小时前
Three.js 初中数学函数可视化 | 三维可视化 / AI 提示词
开发语言·前端·javascript·人工智能·3d·着色器
xiaoshuaishuai85 小时前
C# CDN加速与离线包优化PowerSetting慢问题
开发语言·windows·spring·c#
凉辰6 小时前
解决 H5 键盘遮挡与页面上推
开发语言·javascript·计算机外设
计算机安禾6 小时前
【c++面向对象编程】第25篇:仿函数(函数对象):重载operator()
开发语言·c++·算法
Rust语言中文社区6 小时前
【Rust日报】2026-05-14 Pyrefly v1.0 正式发布:快速的 Python 类型检查器和语言服务器
开发语言·后端·python·rust