2016-11-08 2 views
2

Ich lese Zeilen aus einer Textdatei. In der Textdatei befindet sich ein einzelnes Wort in jeder Zeile. Ich kann das Wort aus der Datei lesen und ausdrucken, aber nicht das ganze Wort wird in einer Zeile ausgedruckt. Das Wort ist in zwei Teile geteilt. Die Buchstaben des gedruckten Wortes sind gemischt.Python readlines() teilt Zeile in zwei

Hier ist mein Code:

import random 
fruitlist = open('fruits.txt', 'r') 

reading_line = fruitlist.readlines() 
word = random.choice(reading_line) 
mixed_word = ''.join(random.sample(word,len(word))) 

print(mixed_word) 

fruitlist.close() 

Wie kann ich auf einer Linie mit einem Wort angezeigt werden?

EDIT:

dies der Inhalt der Textdatei ist:

pinapple  
pear  
strawberry  
cherry  
papaya 

Das Skript sollte eines dieser Wörter (mit ihren Buchstaben gemischt) wie folgt drucken:

erpa 

(Dies wäre das Äquivalent von Birne)

Im Moment wird es so angezeigt:

erp 
a 
+1

Können Sie aktualisieren Sie bitte Ihre Frage zu 1) zeigen deutlich, was gewünscht wird ausgegeben und der tatsächlichen Leistung und 2) ein kurzes Snippet der Datei, die Sie gerade lesen? – wnnmaw

Antwort

5

das ist, weil Sie auch den Leitungsabschluss schlurfenden verkohlt, dass readlines oder Linie Iteratoren in der Leitung umfassen. Verwenden Sie strip() loswerden von ihnen (oder rstrip())

es so tun (vermeiden readlines BTW):

with open('fruits.txt', 'r') as fruitlist: 
    reading_line = [x.strip() for x in fruitlist] 
    word = random.choice(reading_line) 
    mixed_word = ''.join(random.sample(word,len(word))) 
Verwandte Themen