26

Python では、os または subprocess を使用してシステム コマンドを実行できます。問題は、出力を文字列として取得できないことです。例えば:

>>> tmp = os.system("ls")
file1 file2
>>> tmp
0

関数 check_out を持たない古いバージョンのサブプロセスがあり、完全な管理者権限を持っていないサーバーでコードが実行されるため、そのモジュールを更新する必要のないソリューションを希望します。

この問題は些細なことのように思えますが、些細な解決策を見つけることができませんでした

4

1 に答える 1

73

使用os.popen():

tmp = os.popen("ls").read()

これを行う新しい方法 (> python 2.6) は、次を使用することsubprocessです。

proc = subprocess.Popen('ls', stdout=subprocess.PIPE)
tmp = proc.stdout.read()
于 2013-10-08T08:47:43.173 に答える