2017-03-25 10 views
0

ここに私のコードがあります。生成する数値の数を制御するために.csvファイルの番号を使用したいと思います。範囲内に可変番号を書き込む方法

with open('number.csv','rb') as csvfile: 
reader = csv.DictReader(csvfile) 
num = [row['123'] for row in reader] 
a = [randint(12, 20) for i in range(???)] 

??? .csv file.soの値は???を書く方法です。

.CSVは(私の.CSVに一つだけの値を持つ[ '5'])のようなものです:

123 --row1:name 
5 --row2:value 

だから、CSVファイル内の唯一の1の値があります。

+0

あなたは、文字列の*リストを持っている*( 'num'は、5 '' ['になります '...' 、 '...'] ')。 'randint()'が 'a'のために呼び出された回数を決めるために使いたいものはどれですか?私の.csvの –

+0

には1つの値しかありません。 ['5'] – zhou

+0

質問を追加して質問を編集できますか?その場合、リストを使う必要はありません。 –

答えて

0

まず、1つの行だけを読み取るためにリスト内包表記を使用しないでください。 next() functionを使用して必要な行だけを取得します。

次は、整数に単一の値を変換する必要があります:

with open('number.csv','rb') as csvfile: 
    reader = csv.DictReader(csvfile) 
    row = next(reader) 
count = int(row['123']) 
a = [randint(12, 20) for i in range(count)] 
+0

error happened.self._fieldnames = self.reader.next() ValueError:閉じたファイルに対する入出力操作。あなたはそれを修正する気ですか? – zhou

+0

@zhou:あなたの 'csvfile'オブジェクトはすでに閉じています。 'next()'コール*を 'with'ブロック*に入れてファイルが閉じられていないように注意する必要があります。 –

+0

ok!ありがとうございます~~ it works – zhou

関連する問題