2016-04-08 11 views
1

Ich begann gerade mit python 2.7 Programmierung, und ich habe einige Probleme mit meinem Zufallsgenerator für die Aufnahme von Elementen aus einer externen TXT-Datei, frage mich, ob jemand mir ein wenig helfen könnte ...Wie kann ich zufällige Zeichenfolgen aus einer TXT-Datei

Im Grunde Id gerne 100 zufällige Treffer nehmen, und zählen sie alle am Ende, und drucken Sie die Zusammenfassung für die Zeichenfolgen. Ich hoffe es macht Sinn!

Ich weiß, diese Frage wurde zuvor beantwortet, aber die Antworten haben mir nicht geholfen.

Also, meine TXT-Datei enthält eine Reihe von Strings, durch Kommas getrennt. Dies ist, was mein Code wie folgt aussieht:

import random 

fname = raw_input("Enter filename: ") 
infile = open(fname,'r') 
data = infile.readlines() 

for i in range(100): 
    print(random.uniform("Car_types.txt")) 

Vielen Dank für Ihre Hilfe im Voraus!

Antwort

-1

Ich habe nur eine Textdatei meinen Code zu testen. Die Testdatei sieht folgendermaßen aus (nicht sicher, ob Ihre Datei das gleiche Format hat wie ich).

import random 
def addElements(l): 
    for i in l: 
     global result 
     result.append(i) 
fname=raw_input("Enter filename: ") 
result=[] 
summary=[] 
for line in open(fname,'r'): 
    elements=line.strip().split(',') 
    addElements(elements) 
for i in range(100): 
    summary.append(random.choice(result)) 
print summary 
  1. test.txt:

abc, def, ghi

jkl, mno, pqr

  1. Ergebnisse:

['mno', 'ghi', 'pqr', 'jkl', 'abc' , "abc", "jkl", "jkl", "jkl", "def", "pqr", "def", "jkl", "pqr", "mno", "jkl", "mno", " def, jkl, jkl, def, mno, pqr, pqr, abc, pqr, def, abc, pqr, def "jkl", "pqr", "mno", "mno", "mno", "def", "jkl", "def", "ghi", "jkl", "pqr", "mno", " ghi, mno, mno, jkl, jkl, ghi, abc, ghi, ghi, jkl, mno, def, ghi , 'ab', 'abc', 'abc', 'abc', 'abc', 'abc', 'abc', 'mn', 'abf', 'jkl', 'mno', 'mno' jkl, jkl, pqr, pqr, pqr, jkl, def, jkl, mno, mno, ghi, jkl, mno , 'ghi', 'pqr', 'abc', 'ghi', 'def', 'ghi', 'ghi', 'jkl', 'def', 'abc', 'abc', 'ghi', ' jkl ',' pqr ',' pqr ',' pqr ',' def ',' pqr ',' pqr ',' def ']

Hoffe, das hilft Ihnen aus.

Wenn es immer noch Unsinn für Sie ausgibt, bitte geben Sie mir, wie Ihre TXT-Datei aussieht. Vielen Dank!

+0

Danke Jungs, werde den Code später versuchen! – Odani87

1

Dies ist wahrscheinlich das, was Sie suchen:

import random 

fname = raw_input("Enter filename: ") 
# With statements are better as they explicitly close the file 
with open(fname,'r') as infile: 
    data = infile.read().split(",") # Split the strings with commas as you said 

for i in range(100): 
    print(random.choice(data)) # This will randomly choose one of the strings 
+0

Hallo Bharel! Danke für Ihren Rat, aber ich bekomme Unsinn als Ausgabe. Das ist, was ich bekomme: Geben Sie den Dateinamen ein: Car_types.txt . . x . t . C p t C y t t t r e r a t . t y t p – Odani87

+0

@Odani Ich bin mir nicht ganz sicher, wie es möglich ist – Bharel

0

Wenn Sie möglicherweise nicht die gleichen Werte erhalten wollen, nehmen Sie eine Probe nach die Daten über Kommata Aufspalten:

fname = raw_input("Enter filename: ") 
with open(fname) as f: 
    for r in random.sample(f.read().split(), 100): 
     print(r) 

Sie öffnen die Datei, Leseleitungen aufrufen und dann nie den Inhalt mit überhaupt, random.uniform("Car_types.txt")) wirkt auf die literale Zeichenfolge "Car_types.txt", müssen Sie den tatsächlichen Dateiinhalt verwenden.

+0

Es funktioniert, aber ich kann immer noch nicht herausfinden, wie ich eine zusammengefasste Ausgabe haben kann - jede aufgezählte Saite. – Odani87

Verwandte Themen