Python file.csv 在列表中读取和转换
Python file.csv read and transform in list
这只是好奇,我是 python 初学者。我来自巴西。如果我执行我的代码,在这一步 reader_list = list (reader)
不起作用,不要转换列表中的文件。如果我注释“for”块,没关系,它是列表中的transform var reader
。我想知道如果打开文件并操作它,是否需要再次打开,因为如果我在另一个var中再次打开并重复步骤,就可以了。
这是我的代码:
import csv
file = open("planilha.csv", "r")
reader = csv.reader(file)
print(reader)
print(type(reader))
for row in reader:
print(row)
print("\n==================", end="\n\n")
reader_list = list(reader)
print("Keys:\t", reader_list[0])
print("Row 1:\t", reader_list[1])
print("Row 2:\t", reader_list[2])
file.close()
输出:
>>> %Run file_exemplo_pros_mano.py
>>> %Run file_exemplo_pros_mano.py
<_csv.reader object at 0x03D06870>
<class '_csv.reader'>
['Nome', 'Sobrenome', 'Sexo', 'Idade', 'Altura']
['Tiago', 'San Martin', 'Masculino', '34', '1.72']
['Tiago', 'San Martin', 'Masculino', '34', '1.73']
['Tiago', 'San Martin', 'Masculino', '34', '1.74']
['Tiago', 'San Martin', 'Masculino', '34', '1.75']
['Tiago', 'San Martin', 'Masculino', '34', '1.76']
['Tiago', 'San Martin', 'Masculino', '34', '1.77']
==================
Traceback (most recent call last):
File "C:\Users\tiago.martin\Documents\LetsCode_Python\file_exemplo_pros_mano.py", line 17, in <module>
print("Keys:\t", reader_list[0])
IndexError: list index out of range
>>>
好的,如果评论“for row in reader: print(row)”:
>>> %Run file_exemplo_pros_mano.py
<_csv.reader object at 0x041B5870>
<class '_csv.reader'>
==================
Keys: ['Nome', 'Sobrenome', 'Sexo', 'Idade', 'Altura']
Row 1: ['Tiago', 'San Martin', 'Masculino', '34', '1.72']
Row 2: ['Tiago', 'San Martin', 'Masculino', '34', '1.73']
>>>
cvs.reader
returns 一个迭代器。在您使用完 for
循环中的所有行后,迭代器就用完了。它在尽头。因此,调用 list(reader)
会产生一个空列表。如果你想运行多次遍历文件,首先将其转换为列表,然后你可以重复使用列表。
这只是好奇,我是 python 初学者。我来自巴西。如果我执行我的代码,在这一步 reader_list = list (reader)
不起作用,不要转换列表中的文件。如果我注释“for”块,没关系,它是列表中的transform var reader
。我想知道如果打开文件并操作它,是否需要再次打开,因为如果我在另一个var中再次打开并重复步骤,就可以了。
这是我的代码:
import csv
file = open("planilha.csv", "r")
reader = csv.reader(file)
print(reader)
print(type(reader))
for row in reader:
print(row)
print("\n==================", end="\n\n")
reader_list = list(reader)
print("Keys:\t", reader_list[0])
print("Row 1:\t", reader_list[1])
print("Row 2:\t", reader_list[2])
file.close()
输出:
>>> %Run file_exemplo_pros_mano.py
>>> %Run file_exemplo_pros_mano.py
<_csv.reader object at 0x03D06870>
<class '_csv.reader'>
['Nome', 'Sobrenome', 'Sexo', 'Idade', 'Altura']
['Tiago', 'San Martin', 'Masculino', '34', '1.72']
['Tiago', 'San Martin', 'Masculino', '34', '1.73']
['Tiago', 'San Martin', 'Masculino', '34', '1.74']
['Tiago', 'San Martin', 'Masculino', '34', '1.75']
['Tiago', 'San Martin', 'Masculino', '34', '1.76']
['Tiago', 'San Martin', 'Masculino', '34', '1.77']
==================
Traceback (most recent call last):
File "C:\Users\tiago.martin\Documents\LetsCode_Python\file_exemplo_pros_mano.py", line 17, in <module>
print("Keys:\t", reader_list[0])
IndexError: list index out of range
>>>
好的,如果评论“for row in reader: print(row)”:
>>> %Run file_exemplo_pros_mano.py
<_csv.reader object at 0x041B5870>
<class '_csv.reader'>
==================
Keys: ['Nome', 'Sobrenome', 'Sexo', 'Idade', 'Altura']
Row 1: ['Tiago', 'San Martin', 'Masculino', '34', '1.72']
Row 2: ['Tiago', 'San Martin', 'Masculino', '34', '1.73']
>>>
cvs.reader
returns 一个迭代器。在您使用完 for
循环中的所有行后,迭代器就用完了。它在尽头。因此,调用 list(reader)
会产生一个空列表。如果你想运行多次遍历文件,首先将其转换为列表,然后你可以重复使用列表。