これは、一部の.cファイルのパラメータが使用されていないかどうかを判断できる部分的なコードです。メソッドを呼び出すときのValueError
だから、最初、それはtheParamが同じ名前のパラメータを検索するための検索語として使用される場合、呼び出される(その後、それらの値を読んで)されたパラメータ名を検索し、theParam
、その後searchAndValueExtract
として保存します
import os
savedValue = ""
compareValue = ""
theParam = ""
usedParameters = list()
equalValueCounter = 0
parameterCounter = 0
emptyline = ""
def searchAndValueExtract(theParam, compareValue, parameterCounter, savedValue):
# when theParam has a value
# this method will be called to find an identical parameter and then grab it's value for comparison
for path, compdirs, compfiles in os.walk('C:/PATH'):
for compfile in compfiles:
if compfile.endswith('.c'):
with open(os.path.join(path, compfile), 'r') as r:
for line in r:
if '=' in line and theParam in line:
savedValue = value(row, line, savedValue, statements, cur)
compareValue = savedValue
parameterCounter += 1
return compareValue
return parameterCounter
for root, dirs, files in os.walk('C:/PATH'):
for cFile in files:
if cFile.endswith('.c'):
with open(os.path.join(root, cFile), 'r') as this:
for row in this:
if '=' in row and row != emptyline:
theParam = takeTheParam(row, theParam)
savedValue = value(row, savedValue, statements, cur, line)
while theParam not in usedParameters: # Has the param already been checked?
safeValue = savedValue
compareValue, parameterCounter = \
searchAndValueExtract(theParam, compareValue, parameterCounter, savedValue)
if safeValue == compareValue:
equalValueCounter += 1
continue
else:
usedParameters.append(theParam)
break
else:
break
私はコンパイルエラー
File "C:/PATH/ParamChecker.py", line 82, in <module>
searchAndValueExtract(theParam, compareValue, parameterCounter, savedValue)
ValueError: need more than 1 value to unpack
私の周りで検索しましたが、何も私はそれを理解する助けていない、または私は単純に溶液が私の場合で実施することができる方法を把握しておりませんを取得します。
これは 'a、b = fn()'を置いたときに起こりますが、 'fn()'は1つの値しか返しません。例えば。 'compareValue、parameterCounter = searchAndValueExtract(...)' – khelwood
@khelwood - 下記の私のコメントを読んでください。 –