2012-02-14 8 views
-1

私は、Linux/Windowsシステム間の互換性を最大限に高めるためにコーディングしてきたPythonスクリプトでパスを結合するときに以下を使用しています。OSが独自に構築するパス

path = join(dirname(__file__),'..','..','folder','destination') 

これはLinuxで完全に機能しますが、Windowsでこれを実行すると、ただ1つではなく2つの\\が追加されますか? 私はこれを前にどこかで言及したものを見たと確信していますが、今私はそれが私に起こっているのを見つけることができません。 (例:C:\ program files \ folder \)これにより、スクリプトまたはそのようなファイルまたはディレクトリが見つからないというエラーが発生しています。

編集: そして、私が実際に全部働いていたために解決策を見つけることができなかったのは、ログエラーを出力するログモジュールが実際にダブルスラッシュを追加したためです。私が使用していたcatchを実際には、上記の行はLinux/Windowsで完璧に動作します。

+1

[Windows上の奇妙なパス区切り文字]の複製が可能です。(http://stackoverflow.com/questions/6928789/strange-path-separators-on-windows) – Marcin

+0

私はかなり役に立ちました。悲しいことに、私は単語セパレータを試していませんでした。私はパス検索クエリをより具体的に探していましたが、有用な結果を得られませんでした。 – Draineh

+0

また、このリンクは文字列に関連する私のクエリには関係していません。 os.pathから私が使用している結合関数を理解しました。それは私のためのパスを構築し、スラッシュを処理しています – Draineh

答えて

3

os.path.joinおそらくあなたが探していたのは、Pythonのドキュメントです。

+0

これは私が上記の例で使用しているものです – Draineh

+0

私の最初の一見、 'string.join'を使用していました。明示的に 'os.path.join'と書いておくと、あなたが入力しなければならないものがすべて入力されたときに役立つかもしれません; – istruble

+0

申し訳ありません、私の悪い!私は何かばかげていると仮定していた、誰かがすぐに私はそれを説明したinterwebs上で何かを見つけることができなかったので、それはまったく働いていた、 – Draineh

関連する問題