我知道我发布的问题之前已经得到了解答,但我尝试使用已发布的答案,但在我的案例中并没有成功。 问题是我试图将while循环中的多个条目存储到变量中,并且我试图在此循环之外访问此变量。 输出只是第一行,好像循环没有迭代抛出整个文件。 这是我写的代码
import csv
keyword = None
with open('test.csv', 'rb') as f:
reader = csv.reader(f, delimiter='\t')
headers = reader.next()
for row in reader:
keywords = (row[0].strip())
print (keywords)
测试文件具有以下结构:
symbol
code_id_164751
code_id_313270
code_id_96306
code_id_494305
code_id_468128
code_id_303451
code_id_274562
代码的输出只给我第一个code_id:
code_id_164751
所需的输出是整个列表。即使我在while循环之前声明了变量关键字,但似乎我无法在循环之外得到它(这是我在其他问题中提出的建议)
答案 0 :(得分:3)
这与在循环内部或外部定义变量无关。您将keyword
定义为单个变量,并在每次循环时重新分配它,因此它自然只会获得最后一个值。
相反,您应该将其定义为列表并每次追加您的值:
keywords = []
...
keywords.append(row[0].strip())
答案 1 :(得分:0)
你需要
keywords.append(row[0].strip())
答案 2 :(得分:0)
请尝试将结果附加到旧结果。
因为在你的代码中你只需要分配
keywords = (row[0].strip())
所以它会替换旧的关键字。
所以将keywords = (row[0].strip())
更改为keywords += (row[0].strip())