2017-08-01 8 views
0

私は現在のファイルのディレクトリを取得したいと思いますが、/home/gmarth/Documents/pythonLearning.pyのようなものしか得られませんが、/home/gmarth/Documentsのようにファイル名を削除します。Pythonを使用してubuntuにディレクトリを追加します

current = str(os.path.abspath(__file__)) 
for itera in range(len(current) - 1, 0, -1): 
    if current[itera] == '\\': 
     dir = current[0: itera] 
     break; 
self._path = dir 

しかし、Ubuntuの上で、ほぼ同じコードが動作しない:私は、次のコードを使用してWindows上でこれを達成

current = str(os.path.abspath(__file__)) 
for itera in range(len(current)-1, 0, -1): 
    if current[itera] == '/':  #only changed here 
     directory = current[0: itera] 
     break; 
self._path = dierctory 

私が得た:

UnboundLocalError: local variable 'directory' referenced before assignment 

私を混同こと、私はubnuntuで多くの経験を持っていない、どのように私はWindowsのような同様の結果を得ることができますか?

P.S. (ドン;それが重要かどうかは知っている)窓で私はプロジェクトを作りました。 Ubuntuでは単一の.pyファイルです。

答えて

2

はより移植の代替です:

self._path = os.path.dirname(os.path.realpath(__file__)) 

dirnameはあなたのループ

を置き換えます
0

あなたのコードは私のubuntuで正常に動作します。 (末尾のタイプミスを除く)

エラーは、 "path"に入れようとする前に "directory"という名前の変数を使用したことがないことを意味します。すなわち、あなたは決してifに入りませんでしたここではいくつかの時点でルート)

関連する問題