pub fn create_batched_writer(schema: &polars::prelude::Schema) -> BatchedWriter<File> {
    let mut file = std::fs::File::create("output/test.parquet").unwrap();
    let writer = ParquetWriter::new(file);
    writer.batched(schema).unwrap()
}

当文件或目录不存在时,它会死机,如下所示.

called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }

我的问题是,当发现文件和目录不存在时,我应该如何创建

推荐答案

我假设发生这个错误是因为目录"output"不存在,在此基础上,您可以try 以下代码:

pub fn create_batched_writer(schema: &Schema) -> BatchedWriter<File> {
    let file_path = "output/test.parquet";
    
    // Checking if the directory exists and creating if not
    let parent_dir = Path::new(file_path).parent().unwrap();
    if !parent_dir.exists() {
        fs::create_dir_all(parent_dir).expect("Failed to create directory");
    }

    let file = File::create(file_path);
    let writer = ParquetWriter::new(file);
    writer.batched(schema).unwrap()
}

Rust相关问答推荐

为什么父作用域中的变量超出了子作用域

把Vector3变成Vector4的绝妙方法

如果LET;使用布尔表达式链接(&Q);

制作一片连续整数的惯用Rust 方法?

如何使用盒装枚举进行模式匹配?

RUST应用程序正在退出,错误代码为:(退出代码:0xc0000005,STATUS_ACCESS_VIOLATION)

正则表达式中的重叠匹配?(铁 rust 正则式发动机)

如何使用RefCell::JOYMOMTborrow 对 struct 不同字段的可变引用

Rust:为什么 &str 不使用 Into

使用 Option 来分配?

为什么某些类型参数仅在特征边界中使用的代码在没有 PhantomData 的情况下进行编译?

如何保存指向持有引用数据的指针?

为什么Rust中无法推断生命周期?

在1.5n次比较中找到整数向量中的最大和次大整数

为什么可以在迭代器引用上调用 into_iter?

为什么 &i32 可以与 Rust 中的 &&i32 进行比较?

我可以在不调用 .clone() 的情况下在类型转换期间重用 struct 字段吗?

HashMap entry() 方法使borrow 的时间比预期的长

list 中没有指定目标 - 必须存在 src/lib.rs、src/main.rs、[lib] 部分或 [[bin]] 部分

如何阅读 HttpRequest 主体