pythonからPowerShellを実行する
pythonでコードを書いていた時、テストのためにファイルの作成日時を変更したくなったのですが、Pythonのファイル操作系モジュールでは作成日時まで変更するのは難しいようで、結局Pythonからosモジュールを使用して、cmdにアクセスしそこからPOWERSHELLから実行することで解決しました。
# ライブラリのインポート import os # 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は遅いですけど。
コメント
[…] 1.Lighthouseの起動方法 次の2つの起動方法があり、今回は2番目の方法を使う。 (1)Chrome ツールバーの Lighthouse アイコンをクリックする。 (2)コマンドライン ツールとして実行する。 2.必要なツール Node.jsをインストールする。今回は推奨されている12.16.3を使用する。 3.具体的な起動方法 pythonから下記のコマンドを実行する事で起動できる。 PowerShell -ExecutionPolicy RemoteSigned lighthouse https://sbataille.berjisan66.com/game_me_home.shtml –view (注)-ExecutionPolicy RemoteSigned は、このスクリプトのみ実行を許可する為の指定。 セキュリティーによる制限で、通常はスクリプトの実行が禁止されている。 4.プログラムソース Pythonプログラムソースを最後に示す。 基本的な使い方は、以下の通り。 ・ページの纏まり毎に行う。→url_groupでファイル名の先頭部を指定する。 ・変数jの範囲は、上記纏まりの数にする。 ・上記の変更を行ってからプログラムを動作させる。 5.参考情報 下記のWEBページにお世話になりました。ありがとうございます。 ・Lighthouse によるウェブアプリの監査 ・Lighthouseをよりパワフルで便利にする ・PowerShell のスクリプトが実行できない場合の対処方法 ・Pythonからコマンドライン/PowerShellを実行する方法 […]