No such file or directory error

Question:

This is the error I am getting:

Traceback (most recent call last):
  File "E:stuffmodule.py", line 91, in <module>
    f = open('E:/stuff/log.txt')
IOError: [Errno 2] No such file or directory: 'E:/stuff/log.txt'

And this is my code:

f = open('E:/stuff/log.txt')

The E:/stuff/log.txt file exists. I can navigate in Windows Explorer and open it so why can’t I open it?

EDIT:

Output of DIR command:

C:Documents and SettingsAdministrator>dir e:stuff
 Volume in drive E has no label.
 Volume Serial Number is 5660-4957

 Directory of e:stuff

23. 10. 2010  09:26    <DIR>          .
23. 10. 2010  09:26    <DIR>          ..
19. 10. 2010  20:07               385 index.py
23. 10. 2010  16:12             1 954 module.py
22. 10. 2010  19:16             8 335 backprop.py
19. 10. 2010  20:54             1 307 backprop-input.gif
19. 10. 2010  01:48               310 HelloWorld.kpf
23. 10. 2010  15:47                 0 log.txt.txt
               6 File(s)         12 291 bytes
               2 Dir(s)   8 795 586 560 bytes free



C:Documents and SettingsAdministrator>dir e:
 Volume in drive E has no label.
 Volume Serial Number is 5660-4957

 Directory of e:

16. 10. 2010  13:32    <DIR>          development-tools
23. 10. 2010  09:26    <DIR>          stuff
               0 File(s)              0 bytes
               2 Dir(s)   8 795 586 560 bytes free

I am running the python script from the cmd like this:

python E:stuffmodule.py
Asked By: Richard Knop

||

Answers:

how about reading permissions? maybe not authorized to read (default mode of open)

Answered By: tutuDajuju

Since it is windows, and the backslash is a escape character, you must double the backslash to escape it. Try

e:\stuff\log.txt
Answered By: Rawheiser

it been a long time that i didn’t use windows, but if i remember well windows use back-slash in system path so you should do:

import os

file_name = os.path.join("e:\stuff", "log.txt")

f = open(file_name)

and not:

f = open('E:/stuff/log.txt')

there is not / in paths in windows.

Answered By: mouad

Firstly, from above, Windows supports / just fine.

Secondly:
Well, if you look at your file, you’ll notice it’s not log.txt, it’s log.txt.txt… You may see it as “log.txt” in your graphical folder viewer (as opposed to the CLI “dir” command) simply because it hides the known file extensions.

I recommend you disable this – see folder options, there should be an option “Hide extensions of known file types” (or similar).

Answered By: Tim Čas

Define you path names using os.path.join()

root="E:\"
mylog = os.path.join(root,"stuff","log.txt") # or log.txt.txt as seen in your dir output
f = open(mylog)
...
f.close()
Answered By: ghostdog74

Look at this line in the “dir” output:

23. 10. 2010  15:47                 0 log.txt.txt

The file you are looking for is named “log.txt.txt”, not “log.txt”. I see this happen when people set up the Windows file manager to not show known file extensions and then they try to add or modify an extension. I recommend to others that they turn this behavior off. You can do this under View->Folder Options I believe.

Answered By: brady

Following Worked for me. Instead of using Environment.getExternalStorageDirectory()
use context.getFilesDir().
Following peice of code worked for me.

public void create_file(Context context, String sFileName, String sBody) {
        try {
            File root = new File(context.getFilesDir(), "NEC_TEXT");
            if (!root.exists()) {
                root.mkdir();
            }
            File filepath = new File(root, sFileName);
            FileWriter writer = new FileWriter(filepath);
            writer.append(sBody);
            writer.flush();
            writer.close();
            Toast.makeText(context, "Saved", Toast.LENGTH_SHORT).show();
        } catch (IOException e) {
            Toast.makeText(context, "Error"+e.toString(), Toast.LENGTH_SHORT).show();
            e.printStackTrace();



           }
}
Answered By: Nimai Charan Maikap

just use raw string with absolute path

file_path = r"E:stufflog.txt"

this should work fine

Answered By: Lokesh Ajja
Categories: questions Tags:
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.