2

我是编程新手,所以请原谅我对编码的浅薄知识。我有一个可以用 excel 打开的 .csv 文件。每行代表一个人的姓名及其详细信息(如地址、电话号码和年龄),每个详细信息位于不同的列中。每当我移动到新行时,它都是另一个人的详细信息。

我想将此信息导入python,以便每一行(即那个人的每个细节)都在1个元组中(每个细节用','分隔),我想要一个列表中的所有元组。所以基本上是一个包含元组的列表。

我从打开文件开始编码,但不知道如何在一个元组和一个列表中的所有元组中实现人的每个细节细节。我正在使用 Python 2.7。

def load_friends(f):
"""
Takes the name of a file containing friends information as described in the
introduction and returns a list containing information about the friends
in the file.

load_friends(var) -> list

"""

openfile = open('friends.csv', 'Ur')
if f == 'friends.csv':
    openfile = open('friends.csv', 'Ur')
    lines = openfile.readlines()
    print lines
    openfile.close()
4

2 回答 2

11

使用csv模块非常简单:

import csv

with open('friends.csv', 'Ur') as f:
    data = list(tuple(rec) for rec in csv.reader(f, delimiter=','))

data是一个元组列表。

csv模块正确读取文件:

"Smith, John",123

将被读作

('Smith, John', '123')
于 2013-04-05T09:29:59.093 回答
0
import csv
DIR = 'your dicrectory path'
openfile = csv.DictReader(open(DIR + '/file_name.csv', 'r'))
print .fieldnames
for p in filename:
    try:
        p = dict((k.strip().strip('\\t'), v) for k, v in p.iteritems() if v.lower() != 'null')
except AttributeError, e:
    print e
    print p
    raise Exception()
print p.get('Name'),p.get('Details')
于 2013-04-05T10:29:31.643 回答