使用Python从CSV中提取单列到文本文件

2 投票
3 回答
5960 浏览
提问于 2025-04-17 16:50

我终于把我的dbf文件转换成了csv格式,但现在我对如何把它解析成一个文本文件以便进一步编辑感到困惑。

我一直在研究csv模块,但说实话,看得我头都晕了。里面的内容对我来说简直像希腊文一样难懂。不过,如果可以的话,我希望能得到使用这个模块的代码。

我的car.csv文件长这样:

Name,Total,Freq
Toyota,2,2
Mazda,1,1
Kia,2,1
Volkswagon,3,1

我想把以下句子输出到一个文本文件(或者csv文件)中:

在这个社区里,街上停着一辆丰田、一辆马自达、一辆起亚和一辆大众。

如果结果只有两辆车,我不想要逗号:

Cars.dbf

Toyota,2,2
Mazda,2,1

在这个社区里,街上停着一辆丰田和一辆马自达。

Cars.dbf

empty

在这个社区里,街上没有车停着。

我在之前的帖子中得到了一个很好的建议,关于如何构建if-else语句,但我对如何解析列感到迷茫(它们在Excel中没有显示出来,我以为我只有一列)。

python 2.7

顺便问一下,有没有人知道哪个网站能用简单易懂的方式解释csv模块?谢谢。

3 个回答

0

使用 csv 模块:

>>> with open('cars.csv') as f:
...    reader = csv.reader(f)
...    cars_list = [row[0] for row in reader]
...
>>> cars_list
['Name', 'Toyota', 'Mazda', 'Kia', 'Volkswagon']
0

如果我理解得没错的话,你已经有了csv文件。那么,你只需要把这个文件读入你正在使用的处理函数中就可以了。下面是一个例子:

def process_csv():
    with open('/path/to/file/car.csv') as f:
        for line in f:
            values_list = line.split(',') #gives you a list
            #process your the rest here.

基本上,这段代码会加载你的文件,并从每一行创建一个列表。所以对于你的 Toyota,2,2,你最终会得到:

> print('Name = " + values_list[0])

Name = Toyota

3

Python的官方文档示例总是一个很好的参考地方。

你可能想要的东西是这样的:

import csv

makes = []
with open('cars.csv', 'rb') as f:
    reader = csv.reader(f)
    next(reader) # Ignore first row

    for row in reader:
        makes.append(row[0])

print makes

撰写回答