2016-11-10 8 views
1

私は、CSVファイル内の行を読み取るためのpythonでこのコードを作った:Robotframework:csvファイルのランダムな行を読み込むには?

import csv 

class CsvLibrary(object): 
    ROBOT_LIBRARY_SCOPE = 'Global' 

    def __init__(self): 
     print 'Read Cell Value in CSV File' 

    def read_cell_value_by_row(self,filename,rownumber): 
     #read an existing csv file 
     userdata=[] 
     user={} 
     with open(filename,'rb') as csvfile: 
      #read csv file as dictionary object 
      reader=csv.DictReader(csvfile) 
      #read and store it as list of dictionary items 
      userdata=list(reader) 
      #get specific list item as a dictionary object 
      user=userdata[rownumber-1] 
      #return the dictionary object 
      return user 

はその後robotframeworkに、私はこのスクリプトを実行します。

${row_number}= Convert To Integer 1 
    ${user_info}= read_cell_value_by_row UserInfo.csv ${row_number} 
    ${username} Get From Dictionary ${user_info} username 
    Log ${username} 
    ${password} Get From Dictionary ${user_info} password 
    Log ${password} 
    Input Text ${login_username_textbox} ${username} 
    Input Text ${login_password_textbox} ${password} 

をしかし、私は、私は読むことができるかわかりませんCSVファイルのランダムな行、誰かが私を助けることができますか?

+1

同じpythonファイルでは、単にキーワードとして使用できる「get_random row」メソッドを記述するのはなぜですか?ゼロとデータの長さの間の乱数を生成し、これをインデックスとして使用して行を返します。 –

答えて

0

あなたがそこにいるような気がしますが、乱数を生成するだけです。簡単にするためにString Libraryを使用することをお勧めしますが、必要な範囲内でその数を制御する必要があります。

http://robotframework.org/robotframework/latest/libraries/String.html

${RANDOM_NUMBER}= Generate Random String 2 [NUMBERS] 

上記00もちろん、処理されることを確認し、00と99の間の数を提供します。あなたは一意であるためにそれらを必要とするようにしかし、それは鳴りませんRobot Framework: Generating Unique Random number

- ombre42 @からあなたはユニークな番号が必要な場合、私は、検索を経由してい

A本当に素晴らしい選択肢です。

+1

参考になりました。選択可能な行の範囲が固定されていると仮定すると、random.sampleルートが行く方法だと思います。だから、セルのインデックスが1から始まり$ {行数}の行があれば、$ {ランダム行} =評価str(random.choice(range(1、$ {行数)+1)))ランダムです。または、同等の$ {ランダム行} =評価str(random.choice(範囲(0、$ {行数)})+1) – ombre42

+0

@ ombre42 私はランダムな行を読み込み、ロボットフレームワークの入力ですが、私はいくつかの問題を抱えています... 何か間違って教えてもらえますか? – andrembg

関連する問題