[英]How to read csv file lines and split elements in line into list of lists?
我有csv文件。 当我通过VisualStudio打开它时,我会看到以下内容:
nr1 nr2 nr3 name place
10 01 02 Jack New York
10 01 03 David London
10 02 01 Jasmine New Jersey
每行中的元素之间有两个空格,而地点名称中有一个空格。
当我通过Excel打开CSV文件时,每隔一列中只有一个元素。
我不知道如何读取此csv文件,使每一行成为这样的元素列表:
my_list = [
['10','01','02','Jack','New York']
['10','01','03','David','London']
['10','02','01','Jasmine','New Jersey']]
因为我想在这之后做一些循环:
for line in my_list:
nr1 = line[0]
nr2 = line[1]
nr3 = line[2]
name = line[3]
place = line[4]
在这里,我将为每一行创建一个类的实例。
我怎样才能做到这一点?
使用csv模块及其reader()
方法进行尝试:
import csv
f = open('file.csv')
the_data = list(csv.reader(f, delimiter r'\t'))[1:]
使用csv
模块使其非常容易。 唯一的技巧是使输入文件中使用的两个字母的定界符看起来像是单个字符','
,因为它是默认字符。
import csv
from pprint import pprint
with open('my_data.csv', 'r', newline='') as csv_file:
reader = csv.reader(line.replace(' ', ',') for line in csv_file)
my_list = list(reader)
pprint(my_list)
输出:
[['nr1', 'nr2', 'nr3', 'name', 'place'],
['10', '01', '02', 'Jack', 'New York'],
['10', '01', '03', 'David', 'London'],
['10', '02', '01', 'Jasmine', 'New Jersey']]
尝试这个
with open("file.csv","r") as file:
data = file.read()
data = data.strip(' ').split('\n')
for i in len(data):
data[i] = data[i].strip(' ').split(',')
for j in len(data[i]):
data[i][j] = data[i][j].strip(' ')
print (data)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.