如何将文件复制到 Python 脚本中的特定文件夹? [复制]
Posted
技术标签:
【中文标题】如何将文件复制到 Python 脚本中的特定文件夹? [复制]【英文标题】:How to copy a file to a specific folder in a Python script? [duplicate] 【发布时间】:2017-12-20 22:45:25 【问题描述】:我有一个文件的路径存储在一个变量(比如)filePath 中。我想将该特定文件复制到 Python 脚本中的另一个特定文件夹。
我试过了
folderPath = (os.getcwd() + "/folder_name/") #to get the path of the folder
shutil.copyfile(filePath, folderPath)
但我收到了一个错误IOError: [Errno 21] Is a directory
。
我该如何解决这个问题?
我的问题似乎与How do I copy a file in python? 重复。但实际上,我想将文件复制到 文件夹/目录,而该问题的大多数答案都提到将一个文件复制到另一个 文件。
【问题讨论】:
【参考方案1】:folderpath
必须是文件,而不是目录。错误说明了一切。执行以下操作:
shutil.copyfile(filePath, folderPath+'/file_copy.extension')
【讨论】:
【参考方案2】:如下修改你的代码:
folderPath = os.path.join('folder_name', os.path.basename(filePath))
shutil.copyfile(filePath, folderPath)
【讨论】:
【参考方案3】:使用shutil.copy(filePath, folderPath)
而不是shutil.copyfile()
。这将允许您指定一个文件夹作为目标并复制包含权限的文件。
shutil.copy(src, dst, *, follow_symlinks=True)
:将文件 src 复制到文件或目录 dst。 src 和 dst 应该是字符串。如果 dst 指定一个目录,该文件将使用来自 src 的基本文件名复制到 dst。返回新创建文件的路径。
...
copy() 复制文件数据和文件的权限模式(参见 os.chmod())。其他元数据,如文件的创建和修改时间,不会被保留。要保留原始文件的所有元数据,请改用 copy2()。
https://docs.python.org/3/library/shutil.html#shutil.copy
查看shutil.copyfile()
本身中也记录的复制差异:
shutil.copyfile(src, dst, *, follow_symlinks=True)
:复制名为 src 的文件的内容(无元数据)到名为 dst 的文件 并返回 dst。 src 和 dst 是以字符串形式给出的路径名。 dst 必须是完整的目标文件名; 查看 shutil.copy() 以获取接受目标目录路径的副本。如果 src 和 dst 指定相同的文件,则会引发 SameFileError。
https://docs.python.org/3/library/shutil.html#shutil.copyfile
【讨论】:
是的,这也有效:)以上是关于如何将文件复制到 Python 脚本中的特定文件夹? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
每当有人尝试从 Python 中的特定文件夹复制任何文件时如何记录日志
如何使用 package.json 脚本复制具有特定文件扩展名的文件
如何编写Powershell脚本以提取.iso文件并通过创建文件夹将其复制到文件夹中