前提・実現したいこと
コマンドライン引数で読んだ数字とcsvで読み込んだ数字とを掛け算して
結果を一覧として表示させるコードを書いています。
ファイルから数値データを読み込む方法の参考記事
発生している問題・エラーメッセージ
このエラーなくすには、どのようにコードを修正すればいいかわからず困っています。
アドバイスいただけますと幸いです。
$ python sample.py 2 Traceback (most recent call last): File "sample.py", line 3, in <module> csv_obj = csv.render(open("arraynum.csv", "r")) AttributeError: module 'csv' has no attribute 'render'
該当のソースコード
python
1import sys 2import csv 3csv_obj = csv.render(open("arraynum.csv", "r")) 4data = [ v for v in csv_obj] 5 6args = sys.argv 7inputNum= args[1] 8num = int(inputNum) 9 10data = [[ int(elm) for elm in v] for v in csv.render(open("data", "r"))] 11 12for i in range(0,len(data),1): 13 ans = data[i] * num 14 print(ans)
arraynum.csv(excelで一列に入力し、csvで書き出し)
4 7 2 3 9 0 8
試したこと
コマンドライン引数で読み込んだ数字を配列の数字と掛け算することは
以下のコードでできました。
python
1import sys 2args = sys.argv 3 4inputNum= args[1] 5num = int(inputNum) 6 7data = [4, 7, 2, 3, 9, 0, 8] #ここの値をcsvから取得したい 8 9for i in range(0,len(data),1): 10 ans = data[i] * num 11 print(ans)
###ご回答を受けて修正した後のエラー
ご回答を受けて以下のように修正しましたが、別のエラーが発生しました。
python
1import sys 2import csv 3 4args = sys.argv 5inputNum= args[1] 6num = int(inputNum) 7 8data = [[ int(elm) for elm in v] for v in csv.reader(open("arraynum.csv", "r"))] 9 10for i in range(0,len(data),1): 11 ans = data[i] * num 12 print(ans)
エラー文
$ python csvUse.py 2 Traceback (most recent call last): File "csvUse.py", line 8, in <module> data = [[ int(elm) for elm in v] for v in csv.reader(open("arraynum.csv", "r"))] File "csvUse.py", line 8, in <listcomp> data = [[ int(elm) for elm in v] for v in csv.reader(open("arraynum.csv", "r"))] File "csvUse.py", line 8, in <listcomp> data = [[ int(elm) for elm in v] for v in csv.reader(open("arraynum.csv", "r"))] ValueError: invalid literal for int() with base 10: '\ufeff4'
補足情報(FW/ツールのバージョンなど)
Python 3.6.3
Mac OS High Sierra
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/06/20 05:38