os.path.isfile()

7

7stud

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
------------

Here is the output from my program:

----------
$ python 1test.py

['.DS_Store', 'aaa.txt', 'dir1', 'mytest.py', 'scratch.txt',
'xmlFile.xml']
..DS_Store
..DS_Store ___file

aaa.txt
aaa.txt ___file

dir1

mytest.py

scratch.txt

xmlFile.xml

$
--------------

I expected the output:

-----------
DS_Store
..DS_Store ___file

aaa.txt
aaa.txt ___file

dir1
dir1 ___dir

mytest.py
mytest.py ___file

scratch.txt
scratch.txt ___file

xmlFile.xml
xmlFile.xml ___file
------------
 
D

Duncan Booth

7stud said:
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.
 
7

7stud

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.

Thanks.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,997
Messages
2,570,239
Members
46,827
Latest member
DMUK_Beginner

Latest Threads

Top