问题:在 Linux 中使用 shutil.copy() 将文件复制到 FAT16 挂载的文件系统失败(Python 2.7.x)。失败是shutil 内部错误,实际上在shutil.chmod 上失败,而shutil.copy 似乎正在执行。
Shell chmod 也失败了,因为 FAT 不支持权限。
问题:有什么巧妙的方法可以解决这个问题吗?我知道我有几个选择,例如:
- 使用 copyfile - 不理想,因为它需要完整路径,不仅仅是目标目录,而是可行的
- 执行shell cp 复制文件
- 编写不尝试更改文件模式的自己的复制功能
有没有办法在 Python 或 FAT 挂载选项中解决这个问题?我现在通过执行 mount -t vfat -o umask=000 /dev/loop0 /mnt/foo 在我的程序中安装文件系统
捕获异常没有帮助,因为异常发生在 shutil.copy 内部,而当它从 shutil.chmod() 捕获 IOException 时,shutil.copy() 似乎删除了目标文件,然后将 IOException 传递给调用函数。
有什么想法,还是我应该从 1-3 中选择一个?
汉努