shutil.copyfile使文件无法打开? (Python)*已解决​​

时间:2019-10-20 23:31:17

标签: python file directory shutil

我正在开发一个处理文件和目录的程序,我的任务是从列表中获取一些文件并对其进行复制,并在末尾附加扩展名'.copy'。但是,当我进入Finder打开这些复制的文件时,我得到的消息是这些是“不受支持的文件类型”。有人可以解释我在做什么错吗?

我正在使用MacBook Pro。

def copy_files (c_list = [Path]):
     d_list = []
     for element in c_list:
     shutil.copyfile (element.name, element.name + '.copy')
     return d_list

1 个答案:

答案 0 :(得分:1)

问题可能是某些文件浏览器自行处理文件,而不遵循操作系统本机约定,即:通过扩展名而不是mimetype注册文件打开器。由于您在文件名的末尾附加了.copy,因此exporer可能有问题。尝试删除.copy扩展名,然后再次将其打开。

如果仍然无法使用,假设您使用的Mac OS本机文件浏览器知道如何正确处理OS的文件,请参考Python3文档中的以下警告:

  

警告 即使是更高级别的文件复制功能(shutil.copy()shutil.copy2())也无法复制所有文件元数据。   在POSIX平台上,这意味着文件所有者和组也会丢失   作为ACL。 在Mac OS上,不使用资源派生和其他元数据。   这意味着资源将丢失,文件类型和创建者代码也将丢失   将不正确。 在Windows上,文件所有者,ACL和备用数据   流不会被复制。

我希望这会有所帮助! :)