2011-02-25 71 views
1
inFile = open("subjects.txt","r") 
    global subArray 
    subArray = [] 
    global line 
    for line in inFile: 
      subArray.append(line) 
    inFile.close() 
    return subArray 

這我如何獲取數據時是在文本文件不同的行狀在Python中循環

math 
science 
art 

我需要知道如何做到這一點時,該數據是在一行

math , science , geography 
+0

名稱subArray不明確,因爲列表在Python中不稱爲數組,而是列表。 array是模塊數組的一個類,用於創建其元素是同質的對象。 – eyquem 2011-02-25 02:53:40

回答

4

line.split(" , ")將會把字符串轉換成 陣列 字符串列表。你也可以看看標準的「csv」模塊。

+1

編號'line.split(「,」)'將字符串變成** LIST **字符串。 Python中沒有_arrays_,除了模塊** array **的對象是特殊的。 – eyquem 2011-02-25 02:49:13

+0

@eyquem:是的,你當然是對的。我只是使用OP的語言。編輯。謝謝! – tangentstorm 2011-02-25 02:53:23

3

如果整個文件僅僅是一個線這將工作:

subArray = [subj.strip() for subj in open("subjects.txt","r").read().split(',')] 

,或者如果你想這樣做在一個循環:

inFile = open("subjects.txt","r") 
subArray = [] 
for line in inFile 
    for subject in line.split(','): 
     subArray.append(subject.strip()) 
return subArray 

或使用CSV模塊:

import csv 
subArray = [] 
for line in csv.reader(open('subjects.txt', 'rb')): 
    for subject in line: 
     subArray.append(subject)