Python脚本保存/复制到特定目录
Posted
技术标签:
【中文标题】Python脚本保存/复制到特定目录【英文标题】:Python Script Saving/Copying into specific directory 【发布时间】:2019-10-23 17:52:18 【问题描述】:我正在尝试编写一个将文件保存在给定目录中的脚本,但是每当我运行它时都会收到 NotADirecotryError[WinError 267]。关于我可能做错的任何想法或提示?
import shutil
import os
src = 'C:\\Users\\SpecificUsername\\Pictures\\test.txt\'
dest = 'C:\\Users\\SpecificUsername\\Desktop'
files = os.listdir(src)
for file in files:
shutil.copy(file, dest)
for file in files:
if os.path.isfile(file):
shutil.copy(file,dest) ```
【问题讨论】:
您可能希望您的路径作为原始字符串,并且您不希望最后有'\'
。 src = r'C:\Users\SpecificUsername\Pictures\test.txt'
和 dest = r'C:\Users\SpecificUsername\Desktop'
。现在src
根本不是一个目录,那么你为什么要尝试listdir
?这是一个文本文件。另外作为旁注,请查看pathlib
模块
【参考方案1】:
这里发生了几件事:
-
您可以在路径中使用正斜杠。
您的
src
是test.txt
文件,而不是目录,因此您无法使用os.listdir()
对其进行迭代。
您还可以将两个循环合并在一起,因为它们循环的是同一组数据。
shutil.copy()
将文件路径作为输入,而您传递的是文件名。
以下代码应该可以工作,并且它还可以按原样复制目录:
import shutil
import os
basepath = "C:/Users/SpecificUsername/"
src = "Pictures/"
dest = "Desktop/"
files = os.listdir(os.path.join(basepath, src))
for filename in files:
filepath = os.path.join(basepath, src, filename)
if (os.path.isfile(filepath)):
print("File: " + filename)
shutil.copy(filepath,dest)
else:
print("Dir: " + filename)
shutil.copytree(filepath, os.path.join(dest, filename))
希望对你有帮助!
【讨论】:
以上是关于Python脚本保存/复制到特定目录的主要内容,如果未能解决你的问题,请参考以下文章
Python脚本:linux上将筛选的文件夹复制到另一个目录,保存目录结构
如何将文件复制到 Python 脚本中的特定文件夹? [复制]