4

os.system で 2 つの引用符を使用しようとすると、少し問題が発生します。Python でプログラムを起動します。ディレクトリには複数のスペースがあり、必要な CMD に複数のスペースがあるものを起動します。明らかに二重引用符で囲みます。

そして、ここに何かが来ます..私のコードは次のようになります:

import os
os.system("C:/t est/hello")

os.system を使用したので、明らかに C:/t est/hello that が CMD に送信されます。

ここで必要なのは、「C:/t est/hello」を引用符付きで cmd に送信することですが、2 つの引用符も必要であることを理解するには Python が必要です。誰か助けてくれませんか?

4

1 に答える 1

18

コマンドに引用符を追加する場合は、単純に追加してください。おそらく最も簡単な方法は、文字列に一重引用符を使用することです。

os.system('"C:/t est/hello"')

二重引用符で区切られた文字列の中に二重引用符を書きたい場合は、エスケープする必要があります。それは次のように行われます:

os.system("\"C:/t est/hello\"")

ただし、代わりに使用する方がはるかに簡単で、subprocess引用を処理できます。例えば:

subprocess.check_call(['ls', 'some directory with spaces in'])

のドキュメントでさえ、次の使用をos.system()推奨していsubprocessます:

subprocess モジュールは、新しいプロセスを生成し、その結果を取得するためのより強力な機能を提供します。この関数を使用するよりも、そのモジュールを使用することをお勧めします。役立つレシピについては、サブプロセスのドキュメントの「古い関数をサブプロセス モジュールに置き換える」セクションを参照してください。

于 2013-04-23T18:59:24.730 に答える