2014-09-19 91 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