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

abb*_*han 4 machine-learning python-3.x anaconda jupyter-notebook

我正在尝试运行本教程中的代码。我已将代码和数据集放在同一目录中,但仍然出现以下错误。

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'**
Run Code Online (Sandbox Code Playgroud)

Con*_*nst 8

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

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

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

  • 我按照您的建议并将路径从“directory = Flicker8k”替换为“directory=C://user//abbas//Flicker8k”,它对我有用。谢谢! (2认同)

tof*_*fee 7

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

如果你尝试列出 中的文件夹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 找不到 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 )
Run Code Online (Sandbox Code Playgroud)


小智 5

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

import os
os.chdir('<path URL>')
Run Code Online (Sandbox Code Playgroud)

例如。

import os
os.chdir('C:/Users/DELL/Desktop/projectfolder')
Run Code Online (Sandbox Code Playgroud)