FileNotFoundError,当我 运行 shutil.copy 时,1 个特定的“.dylib”文件每次都会抛出 FileNotFoundError 错误
FileNotFoundError, when I run shutil.copy, 1 particular ".dylib" file throws FileNotFoundError error every time
我正在制作一个 python 应用程序,其中一个功能涉及将一个目录的内容复制到多个不同的位置。其中一些文件被复制到它们当前所在的相同目录并被重命名。它几乎总是有效,除非它命中这个特定文件。
这是执行复制的代码。
shutil.copy(original_path_and_file,os.path.join(redun.path, redun.file_name))
导致崩溃的特定副本是在它试图将 /Users/<myusername>/Desktop/archive1/test_2_here/myproject/liboqs.dylib
复制到 /Users/<myusername>/Desktop/archive1/test_2_here/myproject/liboqs.0.dylib
时
这是我的终端中出现的错误:
FileNotFoundError: [Errno 2] No such file or directory: '/Users/<myusername>/Desktop/archive1/test_2_here/myproject/liboqs.dylib'
为什么这个文件抛出错误,而它复制的其他文件 none 抛出任何错误?
更新
根据查找器,该文件实际上是一个“别名”:
也许您可以尝试通过连接目录路径和文件名来解决它,如下所示:
这里的一个问题是您没有指定文件的路径。当您从父目录执行命令时,脚本无法知道 testfile2.txt 位于您的输入目录的子目录中。要解决此问题,请使用:
shutil.copy(os.path.join(foldername, filename), copyDirAbs)
或
# Recursively walk the Search Directory, copying matching files
# to the Copy Directory
for foldername, subfolders, filenames in os.walk(searchDirAbs):
print('Searching files in %s...' % (foldername))
for filename in filenames:
if filename.endswith('.%s' % extension):
print('Copying ' + filename)
print('Copying to ' + copyDirAbs)
totalCopyPath = os.path.join(searchDirAbs, filename)
shutil.copy(totalCopyPath, copyDirAbs)
print('Done.')
Python FileNotFoundError: [Errno 2] No such file or directory 错误 通常由 os 库引发。此错误告诉您您正在尝试访问不存在的文件或文件夹。要修复此错误,请检查您在程序中引用的文件或文件夹是否正确。
我解决这个问题的方法是让应用程序忽略 link 文件。我写了这个:
if not os.path.islink(original_path_and_file):
shutil.copy(original_path_and_file,os.path.join(redun.path, redun.file_name))
这在技术上更像是 work-around 而不是修复,因为它实际上并没有复制文件,但我认为该应用程序在不复制 link 文件时仍然可以正常工作。
我正在制作一个 python 应用程序,其中一个功能涉及将一个目录的内容复制到多个不同的位置。其中一些文件被复制到它们当前所在的相同目录并被重命名。它几乎总是有效,除非它命中这个特定文件。
这是执行复制的代码。
shutil.copy(original_path_and_file,os.path.join(redun.path, redun.file_name))
导致崩溃的特定副本是在它试图将 /Users/<myusername>/Desktop/archive1/test_2_here/myproject/liboqs.dylib
复制到 /Users/<myusername>/Desktop/archive1/test_2_here/myproject/liboqs.0.dylib
这是我的终端中出现的错误:
FileNotFoundError: [Errno 2] No such file or directory: '/Users/<myusername>/Desktop/archive1/test_2_here/myproject/liboqs.dylib'
为什么这个文件抛出错误,而它复制的其他文件 none 抛出任何错误?
更新
根据查找器,该文件实际上是一个“别名”:
也许您可以尝试通过连接目录路径和文件名来解决它,如下所示:
这里的一个问题是您没有指定文件的路径。当您从父目录执行命令时,脚本无法知道 testfile2.txt 位于您的输入目录的子目录中。要解决此问题,请使用:
shutil.copy(os.path.join(foldername, filename), copyDirAbs)
或
# Recursively walk the Search Directory, copying matching files
# to the Copy Directory
for foldername, subfolders, filenames in os.walk(searchDirAbs):
print('Searching files in %s...' % (foldername))
for filename in filenames:
if filename.endswith('.%s' % extension):
print('Copying ' + filename)
print('Copying to ' + copyDirAbs)
totalCopyPath = os.path.join(searchDirAbs, filename)
shutil.copy(totalCopyPath, copyDirAbs)
print('Done.')
Python FileNotFoundError: [Errno 2] No such file or directory 错误 通常由 os 库引发。此错误告诉您您正在尝试访问不存在的文件或文件夹。要修复此错误,请检查您在程序中引用的文件或文件夹是否正确。
我解决这个问题的方法是让应用程序忽略 link 文件。我写了这个:
if not os.path.islink(original_path_and_file):
shutil.copy(original_path_and_file,os.path.join(redun.path, redun.file_name))
这在技术上更像是 work-around 而不是修复,因为它实际上并没有复制文件,但我认为该应用程序在不复制 link 文件时仍然可以正常工作。