指定のファイルを実行するサンプルです。
Windows前提で書いていますが実行しているファイルなどを変更すればその他の環境でも同様なものが作成できます。
プログラムの実行は以下の様にコマンドラインから実行することを前提としています。
python test.py
「メモ帳」を開く
Windowsの「メモ帳」はパスが通っているので notepad.exe の指定でOKです。
加えて .exe を省略できるので以下のような記述となります。
# -*- coding: utf-8 -*- import os os.system('notepad')
「実行ファイル」を実行する
ここではPaint.NET(フリーのペイントツール)を起動することにします。
こちらの実行ファイルのパスは「C:\Program Files\Paint.NET\PaintDotNet.exe」とします。
プログラムはこの様になります。
# -*- coding: utf-8 -*- import os cmd = u'"C:\Program Files\Paint.NET\PaintDotNet.exe"' os.system(cmd)
ここで " でパスを囲んでいるのはパスの途中にスペースを含んでいるためです。
" で囲まずに実行すると以下の様に解釈されてしまいます。
実行ファイル | C:\Program |
---|---|
第一引数 | Files\Paint.NET\PaintDotNet.exe |
" で囲むとスペースが含まれている場合もひとまとまりの文字列として扱われるため以下ような解釈になります。
実行ファイル | C:\Program Files\Paint.NET\PaintDotNet.exe |
---|---|
第一引数 | 無し |
「HTMLファイル」を開く
「エクスプローラ+対象HTMLファイルのパス」により開きます。
パスの区切り文字「\」はエスケープシーケンスとして扱われるので「\\」と指定
します。
# -*- coding: utf-8 -*- import os cmd = u'explorer "C:\\表示したい HTML ファイル\\test.html"' os.system(cmd.encode('cp932'))
コマンドラインに渡す文字はシフトJISで渡す必要があるのでunicodeからエンコードを行っています。ここでは shift_jis でよさそうな気もしますが「丸の中に数字」が書かれている文字(俗に言う丸付き数字)など一部Windows固有の拡張が行われたシフトJISとなっているためこちらに対応するために cp932 と指定する必要があります。
4.9.2 標準エンコーディング
http://www.python.jp/doc/current/lib/standard-encodings.html