2017-08-24 2 views
1

Ich habe diesen Code, um Zufallszahlen zu Textdatei schreibt:Lesetextdatei

import random 
members = 5 
participants=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20] 
random.shuffle(participants) 
with open("myfile1.txt",'w') as tf: 
    for i in range(len(participants) // members + 1): 
     group = participants[i*members:i*members + members] 
     for participant in group: 
      tf.write(str(participant)) 
      tf.write("\n") 

Ich habe versucht, dies zu verwenden, um die Zufallszahlen summieren es mir jedoch

import numpy 
data = numpy.loadtxt("myfile1.txt") 
def MA1001(): 
    return(data[0:,0].sum()) 

gibt, es gibt mir "zu viele Indizes für Array" Fehler? Gibt es eine Möglichkeit, dies zu umgehen, oder gibt es eine bessere Methode? Danke!

+0

Das Problem ist, es nicht ein 2D-Array macht –

Antwort

1
with open('myfile1.txt','r') as file: 
    print (sum(map(int,file.read().splitlines()))) 

Sie könnten versuchen, diese ohne numpy

+0

zu finden. ValueError: ungültiges Literal für int() mit Basis 10: '' –

+0

Ich kenne das Problem, wird behoben –

+0

Entschuldigung, jus t repariert es –

2

Nicht 100% sicher, was Sie erreichen möchten, dennoch: Sie schreiben eine Nummer pro Zeile in der Datei und loadtext gibt ein Array zurück (shape (20,)). Daher ist data.sum() genug. Es gibt keine zweite Dimension.

+0

also der Code schreibt 20 Zahlen zufällig auf eine Textdatei, ich fragte mich, ob es eine Möglichkeit gab, die Summe aller dieser –

1

Wenn Sie numpy verwenden möchten, können Sie einfach tun:

#!/usr/bin/env python 

import numpy as np 

data = np.loadtxt("myfile1.txt") 
def MA1001(data): 
    print(data.sum()) 

MA1001(data) 
+0

So ziemlich, was die andere Antwort sagte –

+0

Ja, ich habe es nicht gelesen, um ehrlich zu sein - sah OPs Kommentar und dachte nicht beantwortet worden ... up- obwohl abgestimmt :) – coder