2014-09-19 82 views
-1

在python中不太好,所以我可能會犯一個錯誤,但是我的SplitAgain只打印函數外的第一行。我確實嘗試了一個forloop,但也沒有工作。不能用Python函數打印列表

print 'List Local Files' 
localFile = open('Local.csv','r') 

for line in localFile: 
    splitLine = line.split(",") 
    splitAgain = splitLine[9].replace('"', '') 

    # print splitAgain 


print 'Collection Files' 
CollectionFile = open('Collection.csv', 'r') 
for line in CollectionFile: 
     sLine = line.split(",") 

     newArray = sLine[4] + sLine[5] 


     newArray2 = newArray.replace("/XXXX/",'') 



print splitAgain 

我想splitAgain打印foorloop之外的所有值,我將在第二階段上運行SplitAgain和newArray2一個差異。

但在現階段它只給我第一行。

我確實嘗試了列表的迭代,但它給了我一個新行上的每個字符。

我想這

for i in SplitAgain: 
    print i; 
+0

什麼功能?我沒有看到一個功能。 – user2357112 2014-09-19 04:35:10

+0

意味着出於循環,對不起 – smushi 2014-09-19 04:35:41

+0

您是否嘗試存儲每次迭代的結果? – 2014-09-19 04:36:35

回答

0

據我所知,你正在試圖獲得在CSV文件中某列的值,並打印出來。這裏是你的代碼的修改版本。

print 'List Local Files' 

VALUES_SEPARATOR = "," 

with open('./local.csv','r') as localFile : 
    lines = [] 
    for line in localFile: 
     #use line[:-1] to remove the end line "\n" symbol. 
     splitLine = line[:-1].split(VALUES_SEPARATOR) 
     splitAgain = splitLine[2].replace('"', '') 

     lines.append(splitAgain)#store the line in a out-of-the-loop variable. 

    print(lines) 

正如你可以看到一個列表用來存儲結果的循環之外的@tdelaney在評論中提出,。 Applyied上的文件:

name, owner,"local file names" 
foo,bar,"foo the foo" 
foofoo,bar,"bar the bar" 

它給出的結果:

List Local Files 
['local file names', 'foo the foo', 'bar the bar'] 

那是滿足您的需求? 我希望如此;)

+0

問題中提供答案,感謝您的幫助,我只是不確定爲什麼我的變量(list,splitAgain)不打印循環外的所有值。 原來我需要一個數組值 – smushi 2014-09-19 07:53:21