私はかなり単純な仕訳入力プログラムを書いています。ディレクトリが存在するかどうかを確認し、存在しない場合は作成する必要があります。
journal.py では、別のモジュールであるファイルをインポートしています。このモジュールは、ファイルとディレクトリの作成と削除を処理します
ジャーナル.py
if __name__ == '__main__':
if files.testForDir('entries') == False:
print 'Directory "entries" does not exist'
print 'Attempting to create directory'
files.createDir('entires')
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
私の問題: Ubuntu 内にディレクトリを作成すると、testForDir()は正しい結果を返します。/entries なしでプログラムを実行しても、正しく実行されます。os.mkdir()を使用してディレクトリを作成し、/entries が Ubuntu に表示されます。ただし、ディレクトリが os.mkdir() によって作成された後に実行すると、 testForDir ()は False を返し、フォルダーが既に存在するため OSError 例外が発生します。
問題を正式に提示し、繰り返します。os.mkdir()を使用してディレクトリを作成すると、os.path.isdir()はディレクトリが存在しないことを通知します。
システム情報: Ubuntu 12.04 LTS 32 ビット、Python 2.7。
ファイル構造: home/name/Programs/journal/.
ジャーナルには、entries.py(空白)、files.py、journal.py、entries(dir) が含まれています。