2017-06-20 8 views
0

我想在行[2]中的csv文件的每一行中追加一個隨機數我從原始文件中獲取信息然後將其寫入新的csv文件+我追加的第二排與隨機數 ,但我得到的每一行相同的隨機數,當我運行該腳本( 我有包含EXP讀文件:在CSV文件中的每一行附加一個隨機數python

car,golf 

當我寫這篇文章的數據到新的csv文件並追加第二行,我得到每行相同的數字

car,golf,1777 
car,bmw,1777 
car,m3,1777 

如何解決這個,所以我可以在每行隨機數

data = [] 
    with open("read.csv", "r") as the_file: 
     sid_row = 5000 
     for i in range(sid_row): 
      line = str(random.randint(1,5000)) 
      sid = line 
     reader = csv.reader(the_file, delimiter=",") 
     for row in reader: 
      try: 
       new_row = [row[0], row[1],sid] 
       data.append(new_row) 
      except IndexError as error: 
       print(error) 
       pass 
    with open("Random.csv", "w+") as Ran_file: 
     writer = csv.writer(Ran_file, delimiter=",") 
     for new_row in data: 
      writer.writerow(new_row) 
+1

什麼發生的事情是,您將隨機數字字符串分配給'sid' 5000次,但除了最後一次使用以外,您不會使用任何生成的值,因爲在生成最後一次數據之後纔開始真正將其添加到數據中隨機數。您應該在每次添加新行時生成隨機數。 –

回答

0

你需要一個新的隨機數每一次,每一行你正在處理,是這樣的:

data = [] 
    with open("read.csv", "r") as the_file: 
     reader = csv.reader(the_file, delimiter=",") 
     for row in reader: 
      try: 
       line = str(random.randint(1,5000)) 
       sid = line 
       new_row = [row[0], row[1],sid] 
       data.append(new_row) 
      except IndexError as error: 
       print(error) 
       pass 
    with open("Random.csv", "w+") as Ran_file: 
     writer = csv.writer(Ran_file, delimiter=",") 
     for new_row in data: 
      writer.writerow(new_row) 
相關問題