2017-03-23 12 views
7

私はPythonを使い慣れていません。今日は何かが私を混乱させています。 c:\python\のパスには、いくつかの折り目があります。私は、このパスの下でPythonスクリプトを編集して、コードを実行します。os.path.isdir()の使用時に './'と '../'の違いは何ですか?

for dir_name in os.listdir("./"): 
     print dir_name 
     print os.path.isdir(dir_name) 

それは出力します。

Daily 
True 
renafile.py 
False 
script 
True 

しかし、私はパスC:\python\下で倍Dailyでスクリプト、および実行コードを置くとき:

for dir_name in os.listdir("../"): 
     print dir_name 
     print os.path.isdir(dir_name) 

それは印刷されます。

Daily 
False 
renafile.py 
False 
script 
False 

彼らは違いがありましたか?

+0

注:私はpython2.7を使用しています –

答えて

9

isdirをフォルダ名で呼び出すと、pythonは絶対パスまたは相対パスを指定しない限り、現在のディレクトリ内のそのフォルダを探します。あなたは"../"内のファイルをリストアップしているので、あなたがそうのようisdir呼び出す必要があります

print os.path.isdir(os.path.join("../", dir_name)) 

あなたがあなたのコードを変更することもできます。

list_dir_name = "../" 
for dir_name in os.listdir(list_dir_name): 
    print dir_name 
    print os.path.isdir(os.path.join(list_dir_name, dir_name)) 
+2

'+'の代わりに 'os.path.join'を使うことをお勧めします。 –

+0

それは動作します!ありがとう! –

+0

@AshishNitinPatil良いコール、私はスニペットを変更しました:) L.Bes、私は助けることができた喜んで –

関連する問題