os.path.isfile()

Duncan Booth duncan.booth at invalid.invalid
Sun Jul 1 11:36:37 CEST 2007


7stud <bbxx789_05ss at yahoo.com> wrote:

> Here is a program to print out the files in a directory:
> 
> -----------
> import os
> 
> myfiles = os.listdir("../")
> print myfiles
> 
> for afile in myfiles:
>     print afile
>     if os.path.isfile(afile):
>         print afile, "___file"
>     if os.path.isdir(afile):
>         print afile, "___dir"
>     print
> ------------
> 
> Here is what's in the directory:
> 
> ----------
> $ ls -al ../
> 
> total 2576
> drwxr-xr-x    8 nnn  nnn      272 Jul  1 03:03 .
> drwxr-xr-x   25 nnn  nnn      850 Jul  1 01:34 ..
> -rw-r--r--    1 nnn  nnn     6148 Jul  1 03:02 .DS_Store
> -rw-r--r--    1 nnn  nnn  1300000 Jun 27 14:02 aaa.txt
> drwxr-xr-x   55 nnn  nnn     1870 Jul  1 03:09 dir1
> -rwxrwxrwx    1 nnn  nnn      263 Jun 27 22:40 mytest.py
> -rw-r--r--    1 nnn  nnn        0 Mar  4 16:15 scratch.txt
> -rw-r--r--    1 nnn  nnn      275 Apr 11 03:40 xmlFile.xml
> ------------

Yes, but what does 'ls -al .' show you? You didn't put any kind of path in 
your calls to isfile/isdir, so you are checking for the existence of 
files/directories called '.DS_Store' etc. in the *current* directory, not 
the one above. From your output I'd guess you have .DS_Store and aaa.txt 
files but the other names are not duplicated.




More information about the Python-list mailing list