2016-05-22 10 views
0
import os 
ot = os.popen("%s") %"ls" 
TypeError: unsupported operand type(s) for %: 'file' and 'str' 

でのPythonの使用。純粋なストリング操作だよね?どんな助けでも感謝します。エラーが発生した理由を、私はそれを把握することはできませんbashの

+2

あなたは 'os.popen("%s "%" ls ")'を意味しましたか?あなたは今、 '' os.popen( "%s") '(したがってエラーの' ''file''')と' 'ls" '(' 'の結果に'% ' 「str」)。そしてこれはBashと何が関係しているのですか? – Biffen

+0

はlsファイル名、またはbashで実行して結果を得るコマンドですか? – minocha

+0

あなたは正しいです、%strは "%s"の後に触れなければなりません、分離できないか、エラーになります... – puming

答えて

6

対話型シェルのためにPythonが優れています。

試してみてください。

>>> import os 
>>> os.popen("%s") 
<open file '%s', mode 'r' at 0x10d020390> 

あなたがあなたの前にエラーを見ることができます。 os.popenの結果はファイルです。次に、文字列操作を適用します。

あなたは、私は、あなたがやろうとしている考えてみてください何をしなければならないものを翻訳:

>>> os.popen("%s" % "ls").read() 

または、直接:

>>> os.popen("ls").read() 

しかしsubprocess moduleは、通常は好ましい:

>>> import subprocess 
>>> subprocess.check_output("ls") 
+0

ああ...はい、私は混乱しました...ありがとう非常に... haha​​ – puming

+0

@PuMing .Z:または単に 'os.listdir()'。 – jfs

+0

@ J.F.Sebastian:はい。それは良い選択です。ありがとう。 – puming

関連する問題