pythonos.path

os.path.isdir returns false when folder exists?


I have the following code which checks if the directory exists

def download(id, name, bar):
    cwd = os.getcwd()
    dir = os.path.join(cwd,bar)
    partial = os.path.join(cwd, id + ".partial")
    print os.path.isdir(dir)
    if(os.path.isdir(dir)):
        print "dir exists"
        dir_match_file(dir, bar)
    else:
        print dir

For a directory that actually exists, it returns "False". Here is the output:

False
/scratch/rists/djiao/Pancancer/RNA-seq/CESC/TCGA-BI-A0VS-01A-11R-A10U-07

When I go to python interactive session and type in os.path.isdir("/scratch/rists/djiao/Pancancer/RNA-seq/CESC/TCGA-BI-A0VS-01A-11R-A10U-07"), it returns "true".

Why does it say false when the folder exists?


Solution

  • The dir in download had whitespace at the end while the dir defined in the interactive session did not. The difference was discovered by printing repr(dir).

    In [3]: os.path.isdir('/tmp')
    Out[3]: True
    
    In [4]: os.path.isdir('/tmp\n')
    Out[4]: False