Python os-当我使用os.mkdir创建目录时,os.path.isdir告诉我该目录不存在

1 python operating-system

我正在写一个相当简单的日记入口程序,我需要检查目录是否存在,如果不存在,我需要创建一个.

在journal.py中我导入另一个模块:files.该模块处理文件和目录的创建和删除

journal.py

if __name__ == '__main__':
    if files.testForDir('entries') == False:
        print 'Directory "entries" does not exist'
        print 'Attempting to create directory'
        files.createDir('entires')
Run Code Online (Sandbox Code Playgroud)

files.py

def testForDir(dirname, path=os.getcwd()):
    pathtotest = os.path.join(path, dirname)
    return os.path.isdir(pathtotest)

def createDir(dirname, path=os.getcwd()):
    dirpath = os.path.join(path, dirname)
    try:
        os.mkdir(dirpath)
    except OSError as error:
        print error
Run Code Online (Sandbox Code Playgroud)

我的问题:当我在Ubuntu中创建目录时,testForDir()返回正确的结果.当我运行没有/ entries的程序时,它也能正确运行.它使用os.mkdir()创建目录,并在Ubuntu中显示/ entries.但是,当我在os.mkdir()创建目录后运行它时,testForDir()返回False并引发OSError异常,因为该文件夹已存在.

所以要正式提出问题,并重复一遍:当我使用os.mkdir()创建目录时,os.path.isdir()告诉我该目录不存在.

系统信息: Ubuntu 12.04 LTS 32bit,Python 2.7.

文件结构:home/name/Programs/journal /.

期刊包含:entries.py(空白),files.py,journal.py,条目(目录)

Use*_*ess 9

你有拼写错误:

'entries' != 'entires'
Run Code Online (Sandbox Code Playgroud)

停止在多个地方对相同的字符串进行硬编码(错误拼写是一种风险,但稍后更改也会造成不必要的痛苦).

把它放在一个变量中,如果你拼错了变量名,Python就会发出警告.