【问题标题】:Duplicate a file in python在python中复制一个文件
【发布时间】:2017-11-29 19:10:10
【问题描述】:

我正在尝试在 python 中复制一个文件。

通过shutil,我只找到了复制和移动文件的解决方案,但我需要复制一个文件以重命名并保留原始文件。

    photos54_TempString = "photos54/thumb-" + artistName + "_54.jpg"
    photos54_NewString = "quickManik_Music/" + songID + "-" + 
    artistName + "_54.jpg"

    copyfile(photos54_TempString, photos54_NewString)

【问题讨论】:

  • 你能解释一下你想做的和“复制”有什么不同吗?
  • shutil.copy(photos54_TempString, photos54_NewString) 不正确怎么办?
  • @ManikKhurana 不,您已经描述了“移动”的行为。 “复制”类似,但它保持原始文件不变。
  • @ManikKhurana 那是shutil.move
  • 不,那是移动。复制副本并保持原件

标签: python file rename file-rename


【解决方案1】:

使用函数shutil.copyfile

这是一个使用终端和 Python 解释器的示例:

$ cd /tmp
$ touch myfile
$ python3
Python 3.5.3 (default, May 10 2017, 15:05:55) 
[GCC 6.3.1 20161221 (Red Hat 6.3.1-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import shutil
>>> shutil.copyfile('myfile', 'mysecondfile')
'mysecondfile'
>>> 
$ ls my*
myfile  mysecondfile

【讨论】:

  • 我帖子下的cmets解释了答案。因为我想保留原件,所以我必须使用 shutil.copy() 而不是 shutil.copyfile()
  • @ManikKhurana 不,shutil.copyshutil.copyfile 在这方面的工作方式相同。但是,copy 也会复制文件的权限,而 copyfile 不会。 shutil.move 不保留原件,即将原件移动到新位置。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-03-24
  • 1970-01-01
  • 2013-08-11
  • 1970-01-01
  • 1970-01-01
  • 2018-05-15
  • 2020-08-18
相关资源
最近更新 更多