pythonからPowerShellを実行する
pythonでコードを書いていた時、テストのためにファイルの作成日時を変更したくなったのですが、Pythonのファイル操作系モジュールでは作成日時まで変更するのは難しいようで、結局PythonからcmdにアクセスしそこからPOWERSHELLから実行することで解決しました。
# Pythonからpowershellを実行してテストデータのファイル作成日時を変更する power_commond = 'Set-ItemProperty test.zip -Name CreationTime -Value "2011/01/01"' os.system('powershell -Command' + ' ' + power_commond)
PythonからCMDでシェルファイルを実行するときは以下のようにすればOKです
(2つのファイルのディレクトリは同じにしておいてください。)
test.ps1
for ($i=0; $i -lt 10; $i++){ Write-Output ("count:"+$i) }
test.py
import os os.system('powershell -Command' + ' ' +\ 'powershell -ExecutionPolicy RemoteSigned .\\test.ps1')
バッチファイル作って実行するのでもいいような気もしますが、一応Python上だけでも解決します。
PowerShellはともかくシェルスクリプトは処理速度が爆速なので高頻度データのような、でかいデータの単純な前処理ならPythonでやるより早いためシェルが自由自在に使えるとデータ分析スキルの足しになりますし、データサイエンティストとしてのスキルも上がります。まあPowershellは遅いですけど。
