web-dev-qa-db-ja.com

Python TypeError:Unicodeへの強制:文字列またはバッファが必要、タプルが見つかりました

#!/usr/bin/env python
import sys
import os

print "Scan a file for ""ErrorScatter"" payload"
print "Drag the suspicious file here then press enter."
filepath = raw_input("File Location: ")
fixpath = filepath , "/Contents/MacOS/ErrorScatter"
scan = os.path.exists(fixpath)

そのため、ファイルに「ErrorScatter」ペイロードがあるかどうかを確認するプログラムを作成していますが、作成をテストするときにエラーが発生し続けます。私は初心者なので、これを修正する方法がわかりません。

これは私が得ているエラーです:

TypeError: coercing to Unicode: need string or buffer, Tuple found

誰かがこれを修正する方法を知っていますか?

8
ACiDRAiN

、Pythonの演算子は、タプルの作成に使用されます。たとえば、

1, 2, 3

3要素タプルを作成します

(1, 2, 3)

そして

"blah", "bleh"

2要素タプルを意味します

("blah", "bleh")

文字列を連結するには、+を次のように使用できます Gauravはすでに提案しています

fixpath = filepath + "/Contents/MacOS/ErrorScatter"

しかし実際には、より良い方法は

import os

fixpath = os.path.join(filepath, "Contents/MacOS/ErrorScatter")

あるいは

fixpath = os.path.join(filepath, "Contents", "MacOS", "ErrorScatter")

os.path.joinを使用することは、Windowsでスクリプトを実行したときに理解できる習慣です。これはあまり起こりそうにありませんが、習慣は繰り返しによって大きくなります...)

14
Mekk