あうん、ファイル名とか

ファイルの指定の仕方

macはMacintosh HDというディレクトリが一番の根っこである。ここにアプリケーション、システム、ユーザ、ライブラリなどのディレクトリが入っている。ユーザディレクトリの中に、たとえば織田信長であればodanobunagaなどのディレクトリがあり、この中にデスクトップがある。

windowsは、Cドライブが根っこにある。Dドライブのこともあるらしいがよく知らない。

多くのソフトウェアで、ファイルを指定するときはその場所(path パス)と一緒に指定する。たとえば、macでデスクトップにあるsample.txtというファイルを指定したいときは、"/Users/odanobunaga/Desktop/sample.txt"のように指定する。または、今いるディレクトリに目的のファイルがある場合は"./sample.txt"のように指定することもできる。前者を絶対パスと言い、後者を相対パスと言う。


マック ターミナル

ターミナルを起動したとき、最初はodanobunagaディレクトリにいる。

cd ../

と入力してエンターを押すと、1つ上のディレクトリに登ることができ、Usersに行ける。もう一回やるとMacintoshに行ける。cdを押すとodanobunagaに戻る。odanobunagaにいる時に

cd Desktop

を入力してエンターを押すことで、デスクトップへ移動できる。odanobunagaにいる時にDesktopのFolder_1というディレクトリの20220829というディレクトリのsample1.txtというファイルに移動したければ、

cd Desktop/Folder_1/20220829/sample1.txt

と入力してエンターを押せば良い。


マック エクセル

エクセルはwindowsでもmacでも使える。たとえばマクロのopenを使いたい時など、エクセルファイルを指定する必要が出てくる。しかし、エクセルはwindowsで使う人の方が多いので、Googleで調べてでてきた記事では

'"c:\test.xls"に保存されているワークブックを開く
Sub OpenWorkbook()
     Workbooks.Open Filename := "c:\sample.xlsx"
End Sub

こんな風に書かれがちである。ここに登場するc: というのは、Cドライブのことであるが、これはwindowsを使う人だけが気にするものなので、macを使う人は書かない。windowsでCドライブにあるsample.xlsxというファイルを開きたい時は上記のように書くが、macでmacintosh HDにあるsample.xlsxというファイルを開きたい時は、

'"c:\test.xls"に保存されているワークブックを開く
Sub OpenWorkbook()
     Workbooks.Open Filename := "\sample.xlsx"
End Sub

と書けば良い。だがしかし、macのmacintosh HDは個人が勝手にいじれるディレクトリではない。その1つ下の、UsersやDownloadはいじること自体はできるが、パスワードを入力する必要があったりしてなんか怖い。そこで、それより下のディレクトリに置くことにしよう。Desktopというディレクトリのsample.xlsxというファイルを開きたければ、

Sub OpenWorkbook()

Workbooks.Open FileName:="/Users/kawakamikoutarou/Desktop/text.xlsx"

End Sub

と入力すればいい。相対パスを使いたければ

Sub OpenWorkbook()
Workbooks.Open FileName:="text.xlsx"
End Sub

である。エクセルのマクロについての記事もそのうち書きたいなあ

マック python

pythonにmacもwindowsもあるのか?って感じだけども、とりあえずmacの場合を書こう。pythonでは、openやwith openなどでファイルを読み込む必要が出てくる。csvファイルやtxtファイルに縦並びになっている数値をグラフにする時とかに便利だ。

エクセルの時もそうだったが、ファイル名はパスも含めて" "で囲む。たとえば、DesktopディレクトリのPython_1ディレクトリの中にsample.pyとsample.txtがあったとすると、sample.pyの中に

with open("./sample.txt",mode = "r") as F:
    S = F.readlines()

もしくは

with open("Desktop/Python_1/sample.txt", mode = "r") as F:
    S = F.readlines()

みたいに書けば良い。with openとかreadlinesとか色々出てきているが、"./sample.txt"もしくは"Desktop/Python_1/sample.txt"という部分だけに注目すれば良い。前者は相対パスであり、後者は絶対パスである。ターミナルを開いて

python3 Desktop/Python_1/sample.py
もしくは
cd Desktop
python3 Python_1/sample.py

もしくは

cd Desktop/Python_1
python3 sample.py

もしくは

cd Desktop
cd Python_1
Python3 sample.py

と書けばsample.pyというpythonのプログラムが実行されてそのプログラムによってsample.txtが読み込まれる。

ウィンドウズ エクセル

多分、マックのエクセルと似たような感じである。マックのエクセルの章でも書いたように、ウィンドウズではCドライブが大元なので、最初にc:と付ける。

'"c:\test.xls"に保存されているワークブックを開く
Sub OpenWorkbook()
     Workbooks.Open Filename := "c:\sample.xlsx"
End Sub

相対パスを使う場合は、多分

'"c:\test.xls"に保存されているワークブックを開く
Sub OpenWorkbook()
     Workbooks.Open Filename := "sample.xlsx"
End Sub

で良いと思うが、未検証である。

ウィンドウズ igor

最後に面倒臭いのが来た。igorでは、パスとファイル名を別々に管理している。こんど書こう

まとめ

>マック ターミナル

>>相対パス
>>>1つ上のディレクトリに登る時 cd ../
>>>今いるディレクトリからその下のディレクトリに行く時 cd ./Hoge

>>絶対パス
>>>odanobunagaから辿る時 cd Desktop/Hoge/Hoge2
>>>odanobunagaに戻る時 cd

>マック エクセル
>>相対パス
>>>今いるディレクトリにあるファイルを指定 "text.xlsx"
>>>今いるディレクトリの上とか下とかのファイルを指定 多分できない

>>絶対パス
>>>大元から辿るしかない "/Users/odanobunaga/Desktop/sample.xlsx"

>マック python
>>相対パス
>>>1つ上のディレクトリに登る時 "../hoge.txt"
>>>今いるディレクトリから下へ行く時 "./HogeFolder/hoge.txt

>>絶対パス
>>>実行しようとしているpyファイルがある場所から辿る。実質相対パス



この記事が気に入ったらサポートをしてみませんか?