【Python】Pythonからコマンドライン/PowerShellを実行する方法

この記事は約2分で読めます。

 

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. […] 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を実行する方法  […]

タイトルとURLをコピーしました