2017-11-03 27 views
0

私のコードargparseは次のようになります。Pythonの: "はAttributeError: '名前空間' オブジェクトが属性を持っていない"

parser.add_argument('-i', '--input', help='Input path/to/file.csv', required=True) 
parser.add_argument('-oh', '--output-html', help='Output path/to/confusion_matrix.html', required=True) 
parser.add_argument('-oc', '--output-csv', help='Output path/to/confusion_matrix.csv', required=True) 
args = parser.parse_args() 

.... 

y_true = pd.Series(true_data, name="Actual") 
y_pred = pd.Series(pred_data, name="Predicted") 
df_confusion = pd.crosstab(y_true, y_pred) 
df_confusion.to_html(args.output-html) 
df_confusion.to_csv(args.output-csv) 

私はそれを実行しようとすると、それは私に、このエラーを与える:

df_confusion.to_html(args.output-html) 
AttributeError: 'Namespace' object has no attribute 'output' 

しかし、私は

012に

df_confusion.to_html(args.output-html) 

から変更した場合

正常に動作します。誰もそれが動作しない理由を説明することができ、どのように私はargs.output-htmlで動作させることができますか?デフォルトでは

+0

Pythonは 'args.output -html'を' args.output -html'とみなし、引き算を行います。 –

答えて

2

(つまり、あなたがadd_argumentdest kwargを提供しない場合)の属性を作成する際にPythonが彼らができるという事実の問題として文字-を(含まれていたが、その後、彼らができない属性ので、それは-_にを変更getattrを使用してのみアクセスできます)。

args.output-htmlargs.output_htmlに、args.output-csvargs.output_csvに変更する必要があることを意味します。

+0

助けてくれてありがとう:私はこの1つを覚えておく必要があります。 –

関連する問題