Python からパスにスペースを含む外部プログラムを実行するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-04 12:07:30
オリジナル
682 人が閲覧しました

How to Execute External Programs with Spaces in Path from Python?

パスにスペースを含む Python からの外部プログラムの実行

Python では、os.system 関数を使用して外部プログラムを実行できます。ただし、スペースを含むパスを使用してプログラムを実行すると、問題が発生する可能性があります。この記事では、この問題を調査し、subprocess モジュールを使用した解決策を提供します。

os.system の課題

os.system 関数は、入力文字列をコマンドとして解釈します。シェルによって実行されます。プログラムへのパスにスペースが存在する場合、シェルはスペースをコマンド区切り文字として解釈し、「コマンドが見つかりません」などのエラーを引き起こす可能性があります。

エスケープによるスペースの処理

プログラム パスを二重引用符でエスケープすると、問題が解決する場合があります。ただし、コマンドにパラメータを追加すると、コマンドが再び壊れる可能性があります。

同じ引用符、異なる構文

プログラム パスを区切るときに一重引用符と二重引用符を入れ替える (例: 「'C:Tempa b cNotepad.exe'」) では問題は解決せず、「ファイル名の構文が正しくありません」エラーが発生する可能性があります。

サブプロセスを入力してください

Toシェルエスケープの複雑さを回避するには、サブプロセスモジュールがより堅牢なソリューションを提供します。 subprocess.call 関数は、文字列ではなく引数のリストを受け取ります。引数は、リスト内の空白で簡単に区切ることができます。

サブプロセスを使用したサンプル スクリプト

次のスクリプトは、サブプロセスを使用してパラメータを指定してメモ帳を実行します。

<code class="python">import subprocess
subprocess.call(['C:\Temp\a b c\Notepad.exe', 'C:\test.txt'])</code>
ログイン後にコピー

このスクリプトはメモ帳を正しく実行し、パス内のスペースによる構文の問題が発生することなく完了するのを待ちます。

以上がPython からパスにスペースを含む外部プログラムを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!