強火で進め

このブログではプログラム関連の記事を中心に書いてます。

指定のファイルを実行する

指定のファイルを実行するサンプルです。
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

「URL」を開く

指定のURLを開く場合もHTMLファイルと同様にエクスプローラの引数として指定すればひらけます。今回はGoogleを開くます。

# -*- coding: utf-8 -*-
import os

os.system('explorer http://www.google.co.jp/')