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)
系统找不到指定的路径:'Flicker8k'
它抱怨无法找到指定的目录。尝试用目录的directory = 'Flicker8k'完整绝对路径替换相对目录路径Flicker8k(似乎您在 Windows 上,所以看起来像C:\myproject\Flicker8k或者如果您在 linux 上/home/user/myproject/Flicker8k或该数据集所在的任何地方)。因此,请确保:
因为有人来这里有同样的错误。
如果你尝试列出 中的文件夹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没有直接相关,我认为再次讨论它仍然很有价值。
正如您所发现的,Windows 正在帮助您。由于从未向我充分解释过的原因(相信我,我已经问过应该知道的人),在 64 位系统上,所有 64 位命令和 DLL 都位于 \Windows\System32 中。所有 32 位命令和 DLL 都位于 \Windows\SysWOW64 中。64 位进程可以看到这两个目录的实际情况。
但对于 32 位进程,操作系统会“帮助”重写您的路径。当您引用 \Windows\System32 时,系统会将该引用重写为 \Windows\SysWOW64。微软称之为“文件系统重定向”。我称之为“文件系统愚蠢”。
大多数时候,这样就可以了。大多数重要命令都存在于两个目录中。有一些(如 nbtstat)不是,这是一个问题。
有两种解决方案。一种是使用64位Python,你说过这对你来说是个问题。另一种方法是使用一个名字令人费解的 API:Wow64DisableWow64FsRedirection。这是我的脚本:
Run Code Online (Sandbox Code Playgroud)import ctypes k32 = ctypes.windll.kernel32 wow64 = ctypes.c_long( 0 ) k32.Wow64DisableWow64FsRedirection( ctypes.byref(wow64) ) # ... do stuff with real files ... k32.Wow64RevertWow64FsRedirection( wow64 )
小智 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)
| 归档时间: |
|
| 查看次数: |
47179 次 |
| 最近记录: |