2016-07-01 16 views
0

私はディレクトリファイル内のファイルを検索しようとしています。私は例を見て、理解できませんでした:os.pathの "./"の意味は何ですか?

import os 
import glob 

file_glob = './rpts/folderA/*_fileA.txt' 
magic_check = re.compile('[*?[]') 
if(magic_check.search(file_glob)) 
    file_list = glob.glob(os.path.expanduser(file_glob)) 

./部分は何を意味するのでしょうか?私は../が前のdirに切り替わることを理解しています。

  1. は、[*?[]
  2. ファイルがfile_list
  3. マジックのチェックの正規表現と呼ばれるリストに格納されている正規表現にマッチするファイルのリストを取得するにはワイルドカードを展開します。私はそれがないと思う何

    [ ]の内部には[とは何ですか?

+2

'' ./ "'は絶対パス(つまり、 "C:// python35/program/files"の代わりに "./files"を取得しようとするのではなく、相対パスです。 ") – Delioth

+0

これは本当にPythonとは関係ありません。 '.'は現在の作業ディレクトリです。シェルでも試してみることができます。 –

+1

'../'は '親ディレクトリ'です。それは実際には「以前のディレクトリ」ではありません。 –

答えて

1

マルタインが言ったように、これは現在の位置(CWD又はPWD)用のUNIXシェル表記です。それがコマンドに含まれている理由は、より堅牢であることです。ユーザーの環境に検索パス($ PATH変数)に "./"がない場合、シェルはファイルrpts/folderA/* _ fileA.txtを検索しません。正面に「./」を付けると、このスクリプトは$ PATHから独立しています。