PowerShellからPythonへ引数を渡す
PowerShellPythonThis article explains how to pass arguments to Python from PowerShell and execute it. It provides a stepbystep guide with code examples.
by JanitorSep 07, 2023
PowerShellからPythonへ引数を渡して実行する方法です。以前からあるマクロ付きエクセルファイルをPythonで操作しようとすると、古すぎてPythonからは操作できなかったりしますが、PowerShellの場合は扱えます。また、VBAと違ってPowerShellの場合はクラスファイルが作成できるので、一度エクセル操作用のPowerShellを作ってしまえば部品として扱えるので、別のエクセルファイルの操作にも使えて楽です。ただ、APIやらデータベースを扱う場合はPowerShellよりPythonの方が楽、ということが多々あるかと思います。エクセル操作はPowerShell、インターネット上の操作はPythonで切り分けたときに、PowerShellからPythonへ引数を渡す方法の説明です。ちょっとしたものを作成したいという方の参考になれば幸いです。
PowerShellからPythonへ引数を渡して実行する方法です。以前からあるマクロ付きエクセルファイルをPythonで操作しようとすると、古すぎてPythonからは操作できなかったりしますが、PowerShellの場合は扱えます。また、VBAと違ってPowerShellの場合はクラスファイルが作成できるので、一度エクセル操作用のPowerShellを作ってしまえば部品として扱えるので、別のエクセルファイルの操作にも使えて楽です。ただ、APIやらデータベースを扱う場合はPowerShellよりPythonの方が楽、ということが多々あるかと思います。エクセル操作はPowerShell、インターネット上の操作はPythonで切り分けたときに、PowerShellからPythonへ引数を渡す方法の説明です。ちょっとしたものを作成したいという方の参考になれば幸いです。
Jump Links
1.PowerShell ISEを起動してスクリプト作成
2.Pythonスクリプト作成
3.動作確認
1.PowerShell ISEを起動してスクリプト作成
1.PowerShell ISEを起動してスクリプト作成
「日本語」という引数をpythonファイルに渡すために用意しています。最後にPowerShellからPythonを呼び出しています。
「日本語」という引数をpythonファイルに渡すために用意しています。最後にPowerShellからPythonを呼び出しています。
powerShellFile.ps1
$pythonScriptPath = "Pythonファイルへのパス"
$arg = "日本語"
$byte = ([System.Text.Encoding]::UTF8).GetBytes( $arg )
$argB64 = [Convert]::ToBase64String( $byte )
python.exe $pythonScriptPath $argB64
powerShellFile.ps1
$pythonScriptPath = "Pythonファイルへのパス"
$arg = "日本語"
$byte = ([System.Text.Encoding]::UTF8).GetBytes( $arg )
$argB64 = [Convert]::ToBase64String( $byte )
python.exe $pythonScriptPath $argB64
2.Pythonスクリプト作成
2.Pythonスクリプト作成
やっていることは、引数を受け取ってprintしているだけです。
やっていることは、引数を受け取ってprintしているだけです。
pythonFile.py
import sys
import base64
def main( receivedArg ):
print( receivedArg )
if __name__ == '__main__':
receivedArg = base64.b64decode( sys.argv[1] ).decode( 'utf-8' )
main( receivedArg )
pythonFile.py
import sys
import base64
def main( receivedArg ):
print( receivedArg )
if __name__ == '__main__':
receivedArg = base64.b64decode( sys.argv[1] ).decode( 'utf-8' )
main( receivedArg )
3.動作確認
3.動作確認
コマンドプロンプトを起動して下記のコマンドを実行し、「日本語」と出てくればOKです。
コマンドプロンプトを起動して下記のコマンドを実行し、「日本語」と出てくればOKです。
powershell -Command "powerShellFile.ps1へのパス"
powershell -Command "powerShellFile.ps1へのパス"
PowerShellの場合は下記コマンドで確認できます。
PowerShellの場合は下記コマンドで確認できます。
. "powerShellFile.ps1へのパス"
. "powerShellFile.ps1へのパス"
PowerShellからPythonへ引数を渡す
PowerShellPythonThis article explains how to pass arguments to Python from PowerShell and execute it. It provides a stepbystep guide with code examples.
by JanitorSep 07, 2023
PowerShellからPythonへ引数を渡して実行する方法です。以前からあるマクロ付きエクセルファイルをPythonで操作しようとすると、古すぎてPythonからは操作できなかったりしますが、PowerShellの場合は扱えます。また、VBAと違ってPowerShellの場合はクラスファイルが作成できるので、一度エクセル操作用のPowerShellを作ってしまえば部品として扱えるので、別のエクセルファイルの操作にも使えて楽です。ただ、APIやらデータベースを扱う場合はPowerShellよりPythonの方が楽、ということが多々あるかと思います。エクセル操作はPowerShell、インターネット上の操作はPythonで切り分けたときに、PowerShellからPythonへ引数を渡す方法の説明です。ちょっとしたものを作成したいという方の参考になれば幸いです。
PowerShellからPythonへ引数を渡して実行する方法です。以前からあるマクロ付きエクセルファイルをPythonで操作しようとすると、古すぎてPythonからは操作できなかったりしますが、PowerShellの場合は扱えます。また、VBAと違ってPowerShellの場合はクラスファイルが作成できるので、一度エクセル操作用のPowerShellを作ってしまえば部品として扱えるので、別のエクセルファイルの操作にも使えて楽です。ただ、APIやらデータベースを扱う場合はPowerShellよりPythonの方が楽、ということが多々あるかと思います。エクセル操作はPowerShell、インターネット上の操作はPythonで切り分けたときに、PowerShellからPythonへ引数を渡す方法の説明です。ちょっとしたものを作成したいという方の参考になれば幸いです。
Jump Links
1.PowerShell ISEを起動してスクリプト作成
2.Pythonスクリプト作成
3.動作確認
1.PowerShell ISEを起動してスクリプト作成
1.PowerShell ISEを起動してスクリプト作成
「日本語」という引数をpythonファイルに渡すために用意しています。最後にPowerShellからPythonを呼び出しています。
「日本語」という引数をpythonファイルに渡すために用意しています。最後にPowerShellからPythonを呼び出しています。
powerShellFile.ps1
$pythonScriptPath = "Pythonファイルへのパス"
$arg = "日本語"
$byte = ([System.Text.Encoding]::UTF8).GetBytes( $arg )
$argB64 = [Convert]::ToBase64String( $byte )
python.exe $pythonScriptPath $argB64
powerShellFile.ps1
$pythonScriptPath = "Pythonファイルへのパス"
$arg = "日本語"
$byte = ([System.Text.Encoding]::UTF8).GetBytes( $arg )
$argB64 = [Convert]::ToBase64String( $byte )
python.exe $pythonScriptPath $argB64
2.Pythonスクリプト作成
2.Pythonスクリプト作成
やっていることは、引数を受け取ってprintしているだけです。
やっていることは、引数を受け取ってprintしているだけです。
pythonFile.py
import sys
import base64
def main( receivedArg ):
print( receivedArg )
if __name__ == '__main__':
receivedArg = base64.b64decode( sys.argv[1] ).decode( 'utf-8' )
main( receivedArg )
pythonFile.py
import sys
import base64
def main( receivedArg ):
print( receivedArg )
if __name__ == '__main__':
receivedArg = base64.b64decode( sys.argv[1] ).decode( 'utf-8' )
main( receivedArg )
3.動作確認
3.動作確認
コマンドプロンプトを起動して下記のコマンドを実行し、「日本語」と出てくればOKです。
コマンドプロンプトを起動して下記のコマンドを実行し、「日本語」と出てくればOKです。
powershell -Command "powerShellFile.ps1へのパス"
powershell -Command "powerShellFile.ps1へのパス"
PowerShellの場合は下記コマンドで確認できます。
PowerShellの場合は下記コマンドで確認できます。
. "powerShellFile.ps1へのパス"
. "powerShellFile.ps1へのパス"