import os
ot = os.popen("%s") %"ls"
TypeError: unsupported operand type(s) for %: 'file' and 'str'
爲什麼出現錯誤,我不能弄明白。我的意思是它是純粹的字符串操作,對吧?任何幫助,不勝感激。使用bash使用Python
import os
ot = os.popen("%s") %"ls"
TypeError: unsupported operand type(s) for %: 'file' and 'str'
爲什麼出現錯誤,我不能弄明白。我的意思是它是純粹的字符串操作,對吧?任何幫助,不勝感激。使用bash使用Python
由於交互式shell,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")
你的意思是'os.popen(「%s」%ls「)?你現在得到的東西試圖將'%'應用於*'os.popen(「%s」)'(因此錯誤中的'''file''')和''ls''(' ' 'str''')。這和Bash有什麼關係? – Biffen
是ls文件名還是您想在bash中執行的命令並在此處獲得結果? – minocha
你說得對,%s應該在%s之後被觸及,不能分開或者出錯... – puming