2017-08-13 42 views
-1
fileid = "SampleData2017.txt" 
ID = [] 
name = [] 
date_ent = [] 
level = [] 
nights = [] 
points = [] 
def Read(): 
    file = open(fileid, "r") 
    Record = file.readlines() 
    for line in Record: 
     line = line.strip(",") 
     A,B,C,D,E,F = line.strip() #here is the error 
     ID.append(A) 
     name.append(B) 
     date_ent.append(C) 
     level.append(D) 
     nights.append(int(E)) 
     points.append(int(F)) 
    file.close 
Read() 
print(ID) 

下面是文本文件中的數據創建代碼:我想爲讀函數讀取從一個文本文件中的數據和分配數據給多個變量,但有一個錯誤

Gri33415,Griffiths,2015,Gold,35,40000 
Smi22316,Smith,2016,Silver,3,7500 
Mia56213,Miah,2013,Platinum,140,165000 
All78915,Allen,2015,Platinum,120,145000 
Hug91714,Huggett,2014,Platinum,150,50000 
Sel77617,Selby,2017,Gold,40,45000 
San55614,Santus,2014,Silver,12,30000 
Lee44213,Leewah,2013,Silver,15,37500 

回答

0

你大概是爲了訪問列,而不是你的數據行的意思line.split(',')代替line.strip() ...

這裏是使用csv reader(輸入數據是一個CSV)不同的想法和cols = zip(*rows)

from csv import reader 

with open(fileid, 'r') as csvfile: 
    rows = reader(csvfile) 
    cols = zip(*rows) 
    ID = next(cols) # or: list(next(cols)) 
    name = next(cols) 
    date_ent = tuple(int(i) for i in next(cols)) 
    level = next(cols) 
    nights = tuple(int(i) for i in next(cols)) 
    points = tuple(int(i) for i in next(cols)) 

print(ID) # ('Gri33415', 'Smi22316', 'Mia56213', ...) 
print(name) # ('Griffiths', 'Smith', 'Miah', ...) 
# etc 

這會返回tuple秒;如果您需要列表,只需將語句更改爲list(next(cols))即可。

相關問題