onun

2016-04-05 12 views
1

biçimlendirilmiş bir kez dosyasını geri CSV rastgele bir dize alınıyor bu mücadele Been:onun

def names(): 
    with open('names.csv') as f: 
     reader = csv.reader(f) 
     for row in reader: 
     return [r.lower().strip().replace(" ","") for r in row] 
      randName = random.choice(r) 
      print randName 

beyaz boşluk ve virgül kırparak oluşum, CSV yaklaşık 1000 adları ile dosya okumak için bu işlevi almaya çalışıyorum ayrıca adı küçültmek. Sonra r listenin geri getirdiği listenin rasgele değerine randName atamak istedim. Bunu çağırdığımda hata yok, randName yazdırmaya çalışırken sonuç yok. Amacım bu işlevin tüm CSV dosyası biçimlendirildikten ve yazdırıldıktan sonra rastgele bir ad almaktır.

Burada neyi yanlış yapıyorum?

Teşekkür

GÜNCELLEME: bölümü için, ben yardıma ihtiyacım

import csv 
import random 

def randStrings(csvFile1,csvFile2): 
    getNameList = csv.reader(open(csvFile1)) 
    randName = sum([i for i in getNameList],[]) 
    getCompanyList = csv.reader(open(csvFile2)) 
    randCompany = sum([i for i in getCompanyList],[]) 
    combinedString = random.choice(randName) + "@" + random.choice(randCompany).lower().replace(" ","") +".com" 
    return combinedString 

print randStrings('names.csv','companys.csv') 

İki şey:

kod abit Tweaked random.choice (randCompany) .lower() değiştirin. ("", "") , birden fazla değiştirmeyi yerleştirmenin bir yoludur? kurtulmak için. ve artı kelimelerdeki gizli beyaz boşluklar ??

İkinci olarak, "kombineString" dönüş değerini bu işlevden nasıl çağırabilirim ?? başka bir işlevde kullanmam gerekecek.

Alkış

cevap

0

İşleviniz return deyimi de kapanıyor! Sonraki iki çizgi asla idam edilmez.

+0

Teşekkürler yardımcı oldu :) şerefe –