10

I'm trying to run the code from this tutorial. I have placed the code and dataset in the same directory, but still I get the following error.

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'**
Mark Rotteveel
  • 100,966
  • 191
  • 140
  • 197
abbas khan
  • 233
  • 2
  • 4
  • 7

4 Answers4

10

The system cannot find the path specified: 'Flicker8k'

It complains about not being able to find specified directory. Try to replace relative directory path directory = 'Flicker8k' with full absolute path to the Flicker8k directory (seems like you are on Windows so something that looks like C:\myproject\Flicker8k or if you are on linux /home/user/myproject/Flicker8k or wherever that dataset resides). So, make sure to:

  • use absolute path instead of realtive
  • folder (with correct capitalization) exists
  • dataset is actually there in said folder
  • access privileges to folder (and files within) are ok
Const
  • 6,237
  • 3
  • 22
  • 27
  • 1
    I followed your suggestion and replaced my path from "directory = Flicker8k " to "directory=C://user//abbas//Flicker8k" and it worked for me.thanks! – abbas khan Jun 30 '18 at 05:26
7

For someone comes here having same error.

If you try list folder in system32, but python tell you

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

That's cause by using python-32bit. Installing 64-bit python will solve the problem.

waste one day to solve it

Best material to explain :)

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

Python does not find System32

This is a very confusing point, so even though it's not directly Python-related, I think it's still valuable to discuss it again.

As you discovered, Windows is helping you. For reasons that have never been adequately explained to me (and believe me, I have asked people who ought to know), on a 64-bit system, all of the 64-bit commands and DLLs live in \Windows\System32. All of the 32-bit commands and DLLs live in \Windows\SysWOW64. A 64-bit process gets to see both of those directories as they really are.

But for a 32-bit process, the operating system "helpfully" rewrites your paths. When you refer to \Windows\System32, the system helpfully rewrites that reference to \Windows\SysWOW64. Microsoft calls it file system redirection". I call it "file system stupidity".

Most of the time, that's OK. Most of the important commands are present in both directories. A few (like nbtstat) are not, and that's a problem.

There are two solutions. One is to use 64-bit Python, which you have said is a problem for you. The other is to use an API with the tongue-twisting name Wow64DisableWow64FsRedirection. Here is my script:

   import ctypes
    k32 = ctypes.windll.kernel32
    wow64 = ctypes.c_long( 0 )
    k32.Wow64DisableWow64FsRedirection( ctypes.byref(wow64) )
    # ... do stuff with real files ...
    k32.Wow64RevertWow64FsRedirection( wow64 )
nuclear
  • 3,181
  • 3
  • 19
  • 38
2

If you are using an environment, and don't want to change all the paths in your code, then do this at the top:

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

eg.

import os
os.chdir('C:/Users/DELL/Desktop/projectfolder')
tlentali
  • 3,407
  • 2
  • 14
  • 21
0

Sometimes 'file not found' error occurs because the filepath is too long. You can solve this by adding "\\\\?\\" to your filepath; for example + "\\\\?\\" + os.path

oymonk
  • 427
  • 9
  • 27