如何用Python复制文件?

2024-04-19 18:13:52 发布

您现在位置:Python中文网/ 问答频道 /正文

如何用Python复制文件?

我在^{}下面找不到任何东西。


Tags: 文件
3条回答

^{}通常比^{}更有用,因为:

  • 它允许dst成为目录(而不是完整的目标文件名),在这种情况下,srcbasename用于创建新文件
  • 它保留了文件元数据中的原始修改和访问信息(mtime和atime)(但是,这会带来一些开销)。

下面是一个简短的例子:

import shutil
shutil.copy2('/src/dir/file.ext', '/dst/dir/newname.ext') # complete target filename given
shutil.copy2('/src/file.ext', '/dst/dir') # target filename is /dst/dir/file.ext

^{}有许多方法可以使用。其中之一是:

from shutil import copyfile
copyfile(src, dst)

将名为src的文件的内容复制到名为dst的文件。目标位置必须是可写的;否则,将引发IOError异常。如果dst已经存在,它将被替换。无法使用此功能复制特殊文件,如字符或块设备和管道。

copysrcdst一起,路径名被指定为字符串

如果使用os.path操作,请使用copy,而不是copyfilecopyfile将只接受字符串。

┌──────────────────┬────────┬───────────┬───────┬────────────────┐
│     Function     │ Copies │   Copies  │Can use│   Destination  │
│                  │metadata│permissions│buffer │may be directory│
├──────────────────┼────────┼───────────┼───────┼────────────────┤
│shutil.copy       │   No   │    Yes    │   No  │      Yes       │
│shutil.copyfile   │   No   │     No    │   No  │       No       │
│shutil.copy2      │  Yes   │    Yes    │   No  │      Yes       │
│shutil.copyfileobj│   No   │     No    │  Yes  │       No       │
└──────────────────┴────────┴───────────┴───────┴────────────────┘

相关问题 更多 >