VScodeの使い方(プログラムを書くための基本もついでに!)
前回、ローカル環境での開発環境の構築について書きました。その中で、VScodeというエディタを紹介したので簡単に使い方を説明します。Python用の拡張機能はインストールしているものとして進めます。
プログラムを書く際のキホン
これまでは説明を省略してきたことがあるので、ついでに書いていきます。
ディレクトリ
これまではGoogle Colabでプログラミングをしてきたので、あまり意識はせずに来ましたが、プログラムを書く際に最初に作業ディレクトリを準備します。ディレクトリとは、ほぼフォルダと同義語です。プログラムを動かす際に、pyファイル単独ということは少なくExcelファイルや画像ファイルを読み込んで処理をするetc…様々なファイルを使います。それらをまとめたフォルダが作業ディレクトリです。何かプロジェクトを始める際には、まずは作業ディレクトリを作成しましょう。
パス
パス(path)は、”道筋”を意味します。パソコンのどこのドライブのどのフォルダ内の…というようにお目当てのディレクトリ(フォルダ)やファイルまでの階層を示したものです。pyファイルでExcelファイルなどを読み込むときに、そのファイルがどこにあるかを指定する時に使用します。
手入力しようとすると面倒ですが心配は要りません。お目当てのフォルダもしくはファイルを右クリックすると「パスをコピー」というメニューが出てくるので簡単にコピーできます(windows11の場合)。windows10では、shiftを押しながら右クリックすると「パスをコピー」が出てきます。
パスには「絶対パス」と「相対パス」があります。
絶対パスは、前述の方法で取得できるドライブ名からの階層を表すパスです。pyファイルを別のディレクトリに移動しても、絶対位置を指定しているのでエラーはでません。
一方、相対パスはpyファイルを起点として相対的な位置関係を示したパスです。pyファイルを別のディレクトリに移動してしまうと、相対的な位置関係は変わってしまうので、お目当てのファイルを見つけることが出来ずエラーが出ます。相対パスの方がシンプルに記述できるのでコードがスッキリします。相対的な位置関係が変わらなければエラーがでないので、作業フォルダごと移動すればエラーはでません。
具体例を示します。デスクトップにフォルダAがあるとして、その中に以下のように2つのファイルと1つのフォルダがあったとします。
sample.pyの中で、「人口10万人当たり新規陽性者数.csv」ファイルを読み込む場合、
絶対パスは、「"C:\Users\ユーザー名\デスクトップ\A\人口10万人当たり新規陽性者数.csv"」となります。
相対パスは、pyファイルと同じ階層なので「人口10万人当たり新規陽性者数.csv」のみでOKです。
仮に、pyファイルと同じ階層に「inputフォルダ」を作成し、csvファイルをその中に保存したとします。
絶対パスは、「"C:\Users\ユーザー名\デスクトップ\A\input\人口10万人当たり新規陽性者数.csv"」となります。
相対パスは、「input\人口10万人当たり新規陽性者数.csv」となります。pyファイルを起点に、inputフォルダ > csvファイル という順番に指定します。
VScodeでプログラムを書いてみよう!
作業ディレクトリを準備する
inputフォルダも含まれる階層構造の作業ディレクトリを例にプログラムを書いてみます。
まずは、作業ディレクトリ(フォルダA)を作成します。場所はどこでも良いです。その中にinputおよびoutputフォルダを作成し、inputフォルダには以前の投稿(Pythonの基本⑤)で使用したオープンデータをダウンロードして分かりやすい名前に変えて保存しておきます。
VScodeのファイルからフォルダAを開く or VScodeにフォルダAをドラッグ&ドロップすると左端(エクスプローラ画面)に先程作成したフォルダAが表示されます。
矢印で示したアイコンをクリックすると、新規ファイルを作成できるのでフォルダAの中に「sample.py」を作成します。すると、sample.pyというタブが作成されコードを入力できるようになります。
ちなみに、VScodeのエクスプローラ上のcsvファイルの上で右クリックすると、「パスをコピー」と「相対パスをコピー」を含む選択肢が出てくるので必要に応じて使い分けてください。
また、上記の方法でパスをコピーすると階層は「\」で示されますが、windowsの場合は「\\」に変えないとエラーが出るので注意してください。
ライブラリの準備
前回の投稿の最後に示したように、ターミナルで必要なライブラリをinstallします。今回はpandasを使用するので、「pip install pandas」と入力します。
サンプルコード
COVID-19新規陽性者数のデータを、都道府県ごとに別ファイルに分けて保存してみたいと思います。7行目以外はこれまでの投稿を見て頂ければ、理解できるハズです!
import pandas as pd
input = 'input\\人口10万人当たり新規陽性者数.csv' # \→\\(ダブルバックスラッシュに変える)
df = pd.read_csv(input)
pref_list = df.columns.to_list() # 列名(都道府県名)をリストに格納。
del pref_list[0:2] # 余分な列名(DateとALL)をリストから削除。
for i in pref_list:
df_pref = df[['Date', f'{i}']] # 都道府県名を1つずつ取り出し、DataFrameを再構成(ループ処理)。
df_pref.to_excel(f'output\\{i}.xlsx', index=False) # 再構成したDataFrameをoutputフォルダに保存。ファイル名は都道府県名(f-stringを使用)。
print('完了!')
上記コードをコピペして保存してください(Ctrl +s)。
pyファイルを実行してみよう!
ファイルの実行はターミナルで行います。ターミナル上で、「py」+ pyファイル名と記述しEnterキーを押すとプログラムが実行されます。
今回の場合、「py sample.py」と入力してください。print文で指示した「完了!」がターミナル上に表示されたら実行終了です。outputフォルダを開いて、47個のExcelファイルが保存されていれば成功です!
ファイルを分ける作業など手作業では地味に時間がかかる面倒な仕事もPythonを使えば一瞬で終わります。ローカル環境でPythonを扱えると、これまで以上に実践的になります。
この記事が気に入ったらサポートをしてみませんか?