2014-09-19 24 views
0

我在使用python b.txt的內容是新的內容作出新的陣列是使用文本文件

132,21,5,63

43,21,2,3 ,5,2,1

基本上,我試圖讓使用上的文本文件

我想知道的內容的新數組爲什麼這個代碼不工作

x=open('b.txt','r') 
for line in x: 
a=[] 
b=line[0] 
c=0 
while c+1<len(line): 
    while line[c]!=',' and line[c+1]!=',': 
     b=b+line[c+1] 
     c=c+1 
    a.append(int(b)) 
    c=c+1 
print a 

幫助PLS,

+0

在線 「而行並[c] = '' 和線並[c + 1] = '':!」,「線[C +1]!=','「就足夠了。換句話說,「line [c]!=','」是沒有必要的。 – 2014-09-19 08:34:05

回答

0

如果我理解你正在試圖做正確的東西,那麼這是一種更Python的方法是:

fileHandler = open('b.txt', 'r') 
listOfLists = [] 
for line in fileHandler: 
    listOfLists.append(line.split(",")) 

print listOfLists 

這將產生,在你的榜樣,這樣的結果:

[["132","21","5","63"],["43","21","2","3","5","2","1"]] 

如果你想他們都在一個單獨的列表(如["132","21","5","63","43","21","2","3","5","2","1"]),您可以用extend方法交換append方法。

+0

我想將它分成2個數組並將字符串轉換爲整數?我應該怎麼做? – 2014-09-19 08:37:38

+0

好吧,既然你有字符串數組,你可以遍歷數組(如'in for array in:'),將每個元素轉換爲一個整數(用'int'方法)。 – 2014-09-19 08:42:08

0

一個其它代碼替代可能是:

import re 
result = [] 
with open("b.txt", 'r') as b_file: 
    content = b_file.read() 
    result = re.split(",|\n", content) 
    result = = [int(r) for r in result if r!=''] 
print result