【发布时间】:2021-02-25 03:01:00
【问题描述】:
我正在制作一个基本的文件管理器来练习。我在尝试将文件从一个目录复制到另一个已经存在的目录时遇到了麻烦。
def singulateDataInDir(SRCdir, passBackFiles=bool, passBackDirs=bool):
for root, dirs, files in os.walk(SRCdir, topdown=True):
for name in files:
filesInSRCdir = os.path.join(root, name)
if passBackFiles is True:
return filesInSRCdir
for name in dirs:
dirsInSRCdir = os.path.join(root, name)
if passBackDirs is True:
return dirsInSRCdir
def copyFilesFromSRCtoDEST(SRCdir, DESTdir):
for files in singulateDataInDir(SRCdir, True, False):
shutil.copy2(files, DESTdir)
我尝试对 SRCdir 中的项目进行排序,并根据它返回文件、目录或两者的参数进行排序。 我收到一条错误消息,说我的目的地是一个目录(我认为?也许“/”表示我输入的代码不正确。)
Traceback (most recent call last):
File "main.py", line 45, in <module>
main(True)
File "main.py", line 38, in main
code.copyFilesFromSRCtoDEST(srcOpt, destOpt)
File "/Users/jcrd/Documents/csProjects/pythonProjects/screenshotCollecting/code.py", line 34, in copyFilesFromSRCtoDEST
shutil.copy2(files, DESTdir)
File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/shutil.py", line 432, in copy2
copyfile(src, dst, follow_symlinks=follow_symlinks)
File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/shutil.py", line 261, in copyfile
with open(src, 'rb') as fsrc, open(dst, 'wb') as fdst:
IsADirectoryError: [Errno 21] Is a directory: '/'
任何帮助都会很棒,感谢您查看我的问题。
【问题讨论】:
-
你用的是windows还是linux
-
复制前请打印
files和DESTdir! -
@rcvaram 我在 Mac 上
-
@KlausD。我添加了一个打印件,我得到了
/Users/jcrd/Documents/pics2/.DS_Store,这真的让我感到困惑,因为我正在复制的文件夹中唯一的东西是 Minecraft 屏幕截图 -
以句点开头的文件和文件夹隐藏在许多 GUI 文件管理器中。试试
ls -al!
标签: python python-3.x