shutil.copyfile导致无法打开的文件? (Python)

问题描述 投票:0回答:1

我正在开发一个处理文件和目录的程序,我的任务是从列表中获取一些文件并对其进行复制,并在末尾附加扩展名'.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
python file directory python-idle shutil
1个回答
0
投票

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.