home ホーム search 検索 -  login ログイン  | reload edit datainfo version cmd icon diff delete  | help ヘルプ

日記/2009/03/29/sys.pathに追加する時の注意点メモ。

日記/2009/03/29/sys.pathに追加する時の注意点メモ。

日記 / 2009 / 03 / 29 / sys.pathに追加する時の注意点メモ。
id: 235 所有者: msakamoto-sf    作成日: 2009-03-29 18:47:04
カテゴリ: Python 

ディレクトリをsys.pathに追加しようとしてちょっと間違ったので、メモ。というかPythonの言語仕様的なモノで、注意っつーほどのモノではない。

間違い:

>>> import sys
>>> sys.path += 'C:\in_vitro\python'
>>> sys.path
['', 'C:\\WINDOWS\\system32\\python25.zip', 'C:\\Python25\\DLLs', 'C:\\Python25\\lib', 
'C:\\Python25\\lib\\plat-win', 'C:\\Python25\\lib\\lib-tk', 'C:\\Python25', 
'C:\\Python25\\lib\\site-packages', 'C', ':', '\\', 'i', 'n', '_', 'v', 'i', 't', 
'r', 'o', '\\', 'p', 'y', 't', 'h', 'o', 'n']

正解:

>>> import sys
>>> sys.path += ['C:\in_vitro\python']
>>> sys.path
['', 'C:\\WINDOWS\\system32\\python25.zip', 'C:\\Python25\\DLLs', 'C:\\Python25\\lib', 
'C:\\Python25\\lib\\plat-win', 'C:\\Python25\\lib\\lib-tk', 'C:\\Python25', 
'C:\\Python25\\lib\\site-packages', 'C:\\in_vitro\\python']

えー、つまり、sys.pathはlist型なので、+= 演算子で追加する時に「文字列」を追加してしまうと、文字列もまたPythonにおいてはlist型と同様のシーケンス型であるため、一文字毎の要素に分解されてしまうという話。
なので、+= するときは、一旦listで囲わないとだめですよー、という話。

または

>>> sys.path.append('C:\in_vitro\python')

こっちの方が素直かも。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2009-03-29 18:52:08
md5:cfe91268c0bc406e0378c3b649a28956
sha1:0ab7c07ebaf786ee27c42c276c6cf370f29fc875
コメント
コメントを投稿するにはログインして下さい。