简而言之,我正在尝试distutils.dir_util.copy_tree()
将数据从 ext3 fs 复制到使用 FAT32 格式化的 USB 拇指驱动器。文件名往往很长并且包含有趣的字符——python 剥离/转义对于 ext3 很好。但是,在使用copy_tree()
时,非法字符列表会突然增加,因为它被扔到 FAT32 拇指驱动器上,python 不会转义并导致以下结果:
IOError: [Errno 22] invalid mode ('wb') or filename: u'/media/usb0/data/someweirdfile.with.dots.etc?satellite=1'
显然模式wb
很好,导致?
是非法字符。没有重写copy_tree()
(或转义文件名),有什么方法可以轻松地告诉 python 它正在处理不同的文件系统类型?