首页 > 解决方案 > 将两个文件合并为一个而不读取其内容

问题描述

我有两个文件

-rw-r--r-- 1 root root 5 Jun 28 11:34 file_a
-rw-r--r-- 1 root root 5 Jun 28 11:34 file_b

我想将这两个文件合并为一个。

cat file_a file_b > file_c 

以上方式不是我想要的。因为如果 file_a,b 太大可能会花费太多时间

应该有更有效的方法。Linux 上的文件存储在我的离散物理区域中。应该有一些数据结构(我们这里称之为指针)记录这些物理区域。

通过修改指针,使 file_a 的结束指针变为 file_b 的开始指针,我们应该能够很快地将它们二合一。

所以问题是如何在python中做到这一点?

标签: pythonlinuxfilesystems

解决方案


copy_file_range(2)可以完成这项工作。但我认为它尚未在 python 中公开。较旧的版本sendfile(2)似乎可以在 python 中通过 os.sendfile. 您必须调用它两次,每次使用in fds 用于file_a和 file_b ,使用out fd 用于file_c


推荐阅读