つなぎ合わせようとしているスクリプトがあります。多くの番号のシャッフルなどを行い、ローカル マシンのリソース使用率を記録します。私はスクリプトの一部にハングアップしています。文字列の一部から int を作成しようとしています。これがスクリプトの問題部分です...
j = item[11:len(item)]
if j.endswith("L"):
j = int(j[0:len(j)-1])
print type(j)
item は、長い一連の文字列のスライス/分割から得られる文字列です。この場合、item は「bytes_recv=3829381938203L」または「bytes_recv=1302」のようなものになります。これらの 4 行は、非 10 進文字をトリミングし、末尾の L がある場合は削除し、変数 J の型を出力します。これは、コードの 3 行目に設定されているため、頭の中で整数である必要があります。 int() を使用した int。スクリプトを実行すると、j 変数の型が「str」であることが必ずわかります。これにより、スクリプトが次のコード行に到達すると、スクリプトがスローされます。
sndf = int(((float(int(j) - ndic[nds][len(ndic[nds])-1])/1024)/1024))
ndic ディクショナリには、後でグラフ化に使用するためのリソース監視からのデータ ポイントの実行中のリストが含まれています。このコード行は、ディクショナリ キーのリストから最後のエントリを取得し、それを j 値から引き、その合計を 1024 で 2 回割ります。上記のコード行がエラーの原因であるとは考えていませんが、含まれている可能性があります。スクリプトを実行したときに表示されるエラーは次のとおりです。
TypeError: unsupported operand type(s) for -: 'int' and 'str'
sndf = のコード行でそのエラーを受け取ります。