FileNotFoundError: [WinError 3] 系统找不到指定的路径:

Posted

技术标签:

【中文标题】FileNotFoundError: [WinError 3] 系统找不到指定的路径:【英文标题】:FileNotFoundError: [WinError 3] The system cannot find the path specified: 【发布时间】:2018-12-03 02:02:15 【问题描述】:

我正在尝试从tutorial 运行代码。我已经将代码和数据集放在同一个目录下,但仍然出现以下错误。

FileNotFoundError                         Traceback (most recent call last)
<ipython-input-6-5f5284db0527> in <module>()
     39 # extract features from all images
     40 directory = 'Flicker8k'
---> 41 features = extract_features(directory)
     42 print('Extracted Features: %d' % len(features))
     43 # save to file

<ipython-input-6-5f5284db0527> in extract_features(directory)
     18         # extract features from each photo
     19         features = dict()
---> 20         for name in listdir(directory):
     21                 # load an image from file
     22                 filename = directory + '/' + name

**FileNotFoundError: [WinError 3] The system cannot find the path specified: 'Flicker8k'**

【问题讨论】:

【参考方案1】:

系统找不到指定的路径:'Flicker8k'

它抱怨无法找到指定的目录。尝试将相对目录路径directory = 'Flicker8k' 替换为Flicker8k 目录的完整绝对路径(好像你在Windows 上,所以看起来像C:\myproject\Flicker8k 或者如果你在linux 上/home/user/myproject/Flicker8k 或该数据集所在的任何地方)。所以,请确保:

使用绝对路径而不是真实路径 文件夹(大小写正确)存在 数据集实际上在所述文件夹中 对文件夹(和其中的文件)的访问权限正常

【讨论】:

我听从了你的建议,将我的路径从“directory = Flicker8k”替换为“directory=C://user//abbas//Flicker8k”,它对我有用。谢谢!【参考方案2】:

因为有人来到这里有同样的错误。

如果你尝试在system32 中列出文件夹,但 python 告诉你

FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\\Windows\\System32\\OpenSSH\\'

这是使用python-32bit 的原因。安装64位python即可解决问题。

浪费一天时间解决它?

最好的解释材料:)

https://mail.python.org/pipermail/python-win32/2012-March/012121.html

Python does not find System32

这是一个非常令人困惑的点,所以即使它不是直接的 Python相关的,我觉得还是值得再讨论一下。

正如您所发现的,Windows 正在帮助您。因为从未有过的原因 已向我充分解释(相信我,我问过那些 应该知道),在 64 位系统上,所有 64 位命令和 DLL 住在 \Windows\System32。所有 32 位命令和 DLL 都存在于 \Windows\SysWOW64。一个 64 位进程可以同时看到这两个 目录原样。

但是对于 32 位进程,操作系统“有帮助”重写您的 路径。当您参考 \Windows\System32 时,系统很有帮助 重写对 \Windows\SysWOW64 的引用。微软称之为文件 系统重定向”。我称之为“文件系统愚蠢”。

大多数时候,没关系。大多数重要的命令都存在 在两个目录中。少数(如 nbtstat)不是,这是个问题。

有两种解决方案。一种是使用 64 位 Python,你有 说是你的问题。另一种是使用 API 与 绕口令的名字 Wow64DisableWow64FsRedirection。这是我的脚本:

   import ctypes
    k32 = ctypes.windll.kernel32
    wow64 = ctypes.c_long( 0 )
    k32.Wow64DisableWow64FsRedirection( ctypes.byref(wow64) )
    # ... do stuff with real files ...
    k32.Wow64RevertWow64FsRedirection( wow64 )

【讨论】:

【参考方案3】:

如果您使用的是环境,并且不想更改代码中的所有路径,请在顶部执行此操作:

import os
os.chdir('<path URL>')

例如。

import os
os.chdir('C:/Users/DELL/Desktop/projectfolder')

【讨论】:

以上是关于FileNotFoundError: [WinError 3] 系统找不到指定的路径:的主要内容,如果未能解决你的问题,请参考以下文章

FileNotFoundError: [WinError 3] 系统找不到指定的路径

FileNotFoundError:找不到模块“libvlc.dll”

FileNotFoundError: [WinError 3] 系统找不到指定的路径:

子进程 FileNotFoundError

PythonPDF: FileNotFoundError: [WinError 2] 系统找不到指定的文件

无法打开资源文件,pygame 错误:“FileNotFoundError:没有这样的文件或目录。”