私は主にWindowsプログラミングをしているのですが、「そう言えばいつの間にか'/'が使えるようになったなー。」と思ってたものの、いつからか、と問われれば定かではなかったので、少しググってみました。
同様なQ&Aを見つけましたのでご案内します。
ソース的にどれほど信憑性があるのかちょっと定かではないのですが、個人的に興味深いです。
When did Windows start accepting forward slash as a path separator?
これによると、実ははるか昔、Windowsの前身MS-DOS2.0の時代からスラッシュ(’/‘)もバックスラッシュ(日本では’¥’円マーク)もPATHセパレータとして内部的に両方使えたのですが、一部のコマンドやコードでちゃんとサポートしていなかったので、’¥’(バックスラッシュ)を常用するようになった経緯が伺い知れます。これは私も知りませんでした。
(MS-DOSやWindowsのコマンドラインでは、”/option” とのように指定することが多い)
ですので、
10より前の、過去のWindowsではこのようなパス指定は無効だったということなのでしょうか?
本来、OSの内部的には使えるんだけども、それをサポートするシェルやその他のコードで正しく実装しきれていなかったので、対外的に’¥’(バックスラッシュ、円マーク)を使うようアナウンスしていた、と言えるかと思います。
それともPython3.6.4だからこのような指定ができるのでしょうか
上記により、Python3.6.4 からだ、と言う訳ではないことになります。
他にも公式な情報、ソースやその他、有益な情報がありましたら私もぜひお聞きしたいです。間違いがあればご指摘ください。
2018/03/19 22:22 追記しました。
ウラを取る為、更にググってみました。wikipediaなのでこれも公式とは言えないですが、
Filename のReserved characters and wordsの項で、スラッシュについて
/ slash Used as a path name component separator in Unix-like, Windows, and Amiga systems. (For as long as the SwitChar setting is set to '/', the DOS COMMAND.COM shell would consume it as a switch character, but DOS and Windows themselves always accept it as a separator on API level.)
つたないながら意訳させてもらいますと、
「スラッシュはUNIX系、Windows、AmigaシステムでPATH名の区切りとして使われている。DOSのCOMMAND.COMシェルはこれを(コマンドラインのオプション)スイッチ用文字として使っているが、DOSとWindows自身はAPIレベルではいつでも'/'をPATHセパレーターとして受け付ける。」とあります。OS内部では'/'を正しく扱うように造られていそうです。
バックスラッシュ('¥'円マーク)については
\ backslash Used as the default path name component separator in DOS, OS/2 and Windows (even if the SwitChar is set to '-'; allowed in Unix filenames, see Note 1)
意訳:「バックスラッシュはDOS, OS/2, WindowsでデフォルトのPATH名区切り文字として使われている。」
です。
ちなみに若い方はご存じないかと思いますが、OS/2とははるか昔、Windows NT(Windows 10の直系のご先祖)と32ビットOSの覇権を奪い合ったIBMのOSです。Windows NTとWindow95の猛攻に敗れました。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/03/20 02:10