我有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]
在这里,我将为每一行创建一个类的实例。
我该怎么做?
答案 0 :(得分:2)
尝试使用csv模块及其reader()
方法:
import csv
f = open('file.csv')
the_data = list(csv.reader(f, delimiter r'\t'))[1:]
答案 1 :(得分:1)
他们是tab delimited csv档案。这意味着每个列都由制表符分隔(' \ t')。
以下代码应该有效。
已更新:使用.rstrip()删除\n
import csv
f = open('data.csv')
data = []
for line in f:
data_line = line.rstrip().split('\t')
data.append(data_line)
print data
答案 2 :(得分:1)
使用','
模块可以轻松完成。唯一的技巧是使输入文件中使用的双字母分隔符在示例中看起来是单个字符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']]
输出:
INSERT INTO MY_EMPLOYEE
VALUES(126,'Popov', 'Olga', 'opopov', 8500),
(127, 'Chen', 'Ling', 'lcheng', 14500),
(128, 'Dunn', 'David', 'ddunn', NULL);
答案 3 :(得分:0)
试试这个
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)