質問

できるすべてのパスのPythonプログラムを使用".."は親ディレクトリ)/(分離のパスコンポーネントも作 どのようなプ?

一方、は、いまだかつてみたことがないような請求項を含んがいにつながるということで、惜しま)、os、os.パスモジュールの提供を行い設備の取扱いにパスプラットフォームagnostic(os.pardir,os.ます。参加...、できると考えちの方はぜひご参加ください!です。

一方で、でき 読み取StackOverflow る"../path/to/file"作品はすべてのプラットフォーム...

なので、os.pardir,os.ます。参加や友人にも利用することで、携帯性、Unixパス名は常に安全な(可能な文字エンコーディング)等の問題を討議します。でも"ほとんど常に"安全なものであるかどうか(下Windows、OS X、Linux)?

役に立ちましたか?

解決

"ほとんど常に安全"についてはその通りである。すべての基盤ばか作ok、今日のように思うものとさせていただくことを条約をお楽しみいただきました。

しかしPythonは非常に携帯作業を開発する上で以上に多く、通常通ります。その理由の os モジュールが円滑なもので、基盤が異なる条件です。

があり、このまま使用しないで os 性能におい

os.pardir 自己記録が ".." んで、os.pardirするのが簡単にgrepのための

こちらはdocsからpython1.6の場合Macが異なるためのもの

OSルーチンMac、DOS、NT、またはPosixによってどのシステムでいま ます。

この輸出:-すべての機能からposix、nt、dos、os2、mac、またはceなどのunlink,stat。-osとなる。経路のモジュールposixpath,ntpath,macpath、dospath -osとなる。名'posix','nt','dos','os2','mac"、"ce' -osとなる。curdirを示す文字列の現在のディレクトリ('.'または':') -osとなる。pardirを示す文字列の親ディレクトリ('..'または'::') -osとなる。月(またはもっとも共通)パス名の区切り文字('/'または':'または'\') -osとなる。altsepの代替パス名のセパレータ(なしまたは'/') -osとなる。pathsepのコンポーネント区切りで使$PATHなど -osとなる。linesepの行区切りテキストファイル(''または''または'') -osとなる。defpathはデフォルトの検索パスのための実行可能ファイル

プログラムの輸入-使用'osはちている 携帯との間でシームレスな開発環境を提供.もちろん、その 機能が利用で定義されているすべてのプラットフォーム(例えば、リンクを解除と opendir)、すべてのパス名操作のためのosである.パス(例えば、分割 参加).

他のヒント

ことがなかった問題を .., ですが、良いアイデアに変換す絶対パスを使用 os.ます。abspath.次に、私のお勧めします。ます。参加whereever可能です。多くのコーナーケース(以外の携帯性の問題に加入経路でないと心配します。たとえば、次のようになります。

>>> '/foo/bar/' + 'qux'
'/foo/bar/qux'
>>> '/foo/bar' + 'qux'
'/foo/barqux'
>>> from os.path import join
>>> join('/foo/bar/', 'qux')
'/foo/bar/qux'
>>> join('/foo/bar', 'qux')
'/foo/bar/qux'

合の問題を .. まあぼーん名(Windows*nix、OS Xのすべての支援と表記).

内でpythonを使用 / まいます。ますます意識する必要があOSの条約したい場合に実行コマンドに独立したサブシェルで

myprog = "/path/to/my/program"
os.system([myprog, "-n"])                           # 1
os.system([myprog, "C:/input/file/to/myprog"])      # 2

コマンド#1ろうとして期待される。
コマンド#2が動作しない可能性がある場合 myprog はWindowsのコマンドや期待を解析し、そのコマンドライン引数にWindowsファイル名です。

でWindowsの場合、設定されていない場合は"どのようなプラットフォーム"をUnixとWindowsいます。

一方、PythonもにVMS,RISC OS、その他の奇プラットフォームでの使用を完全に異なるファイル名のコンベンションしかし、この可能性がることができるように申し込んで走VMS,盲目でなんとにかく"早期移植性のルートの比較的軽微で悪"

私のような利用へと重点が移りつつある。パス機能から良いかを意図だけでなく、文字列の連結にもつながる行為の百万の目的に読み込んで非常に明確にして経路の操作が可能です。

Windows対応 / として、パスセパレーターが不要になる。の互換性とUnixファイル名は、Windowsファイル名:

  • 許可されている文字をファイル名
  • 特別名
  • 場合の感度

Windowsはより厳しい方の金 (これは、より禁止文字や特別名)は、Unixでは大文字と小文字が区別されます。があり 回答 この上場などにはこれらの文字および名です。私は見ていきます。

今いる場合、開発環境が付属機能の作成または操作パスを用いるべきであり、y'know.特にがあることから、多ー以上WindowsおよびUnix.

留守番最初の質問は、あり ../dir/file まない限り、予約なら、世界最大のオンラインの一部上記の互換性.

OS XとLinuxの両方のUnix互換のように定義をご利用された形式でお話いただきました。初の問題をもたらしていました。Windowsでは"/"のほか、"\"でプログラムが互換性のためXenix、Unix異体マイクロソフトがいたとしたアンケート調査を行うに昔のことの互換性も引き継がれて現在に至る。この作品です。

とにかく他のプラットフォームはPythonに移植され、できません。

としてその他っているため、進スラッシュは全てのケースがいないほうがよいリストの作成パスセグメントおよびos.ます。join()-ingします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top