如何将CSV文件中的行存储到Python中,并使用HTML打印数据

如何将CSV文件中的行存储到Python中,并使用HTML打印数据,python,html,excel,csv,Python,Html,Excel,Csv,基本上,我的问题是:我有一个CSV excel文件,其中包含有关Southpark字符的信息,我和我有一个HTML模板,我要做的是按行(存储在列表中)获取每个字符的数据,并使用给定的HTML模板实现该数据以创建5个单独的HTML页面,其中包含字符的姓氏 以下是CSV文件的图像:i.imgur.com/rcIPW.png 这就是我到目前为止所做的: askfile = raw_input("What is the filename?") southpark = [] filename = op

基本上,我的问题是:我有一个CSV excel文件,其中包含有关Southpark字符的信息,我和我有一个HTML模板,我要做的是按行(存储在列表中)获取每个字符的数据,并使用给定的HTML模板实现该数据以创建5个单独的HTML页面,其中包含字符的姓氏

以下是CSV文件的图像:i.imgur.com/rcIPW.png

这就是我到目前为止所做的:

askfile = raw_input("What is the filename?")

southpark = []

filename = open(askfile, 'rU')

for row in filename:
    print row[0:105]

filename.close()
上面的内容将空闲shell上的所有信息打印成五行,但我必须找到一种方法将每行和每列分开,并将其存储到一个列表中(我不知道如何做)。这是一个非常基本的代码,我知道我正在想办法先存储行和列,然后我必须使用一个函数(def)首先将数据分配给HTML模板,然后从该数据/模板创建一个HTML文件..到目前为止,我是一个noob,我试着在网络上搜索,但我不理解其中的内容

我不允许使用任何可下载的模块,但我可以使用Python中内置的东西,如导入csv或诸如此类的东西,但实际上它应该用几个函数、列表、字符串和循环来编写

一旦我弄清楚如何分离行和列并存储它们,我就可以将它们实现到HTML模板中并创建文件

我不是想让我的硬件为我做,只是我在编程方面相当差劲,所以任何帮助都是非常感谢的

顺便说一句,我使用的是Python2.7.2,如果您想下载CSV文件,请单击


更新:

好的,非常感谢!这有助于我了解每行打印的内容以及程序读取的信息。现在,由于我必须在这个程序中使用函数,这就是我的想法

每行(0-6)打印出单独的值,但只有print row函数打印出一个字符及其所有对应的值,这正是我所需要的。我想要的是像“打印行”一样打印数据,但我必须将这5个字符中的每一个存储在单独的列表中

基本上,“打印行”打印出所有5个字符及其相应的属性,我如何将每个字符拆分为5个变量并存储为列表

当我打印第[0]行时,它只打印名称,或打印第[0]行只打印DOB。我在考虑创建一个def函数,它只接受print“row”并在一个循环中拆分为5个变量,然后另一个def函数接受这些变量/数据列表并将它们与HTML模板组合,最后我必须弄清楚如何在Python中创建HTML文件

对不起,如果我只是想弄明白这一切,听起来很困惑。这是我现在的代码,它给出了一个错误,有太多的值需要解包,但我只是想摆弄一下,尝试不同的东西,看看它们是否有效。基于上面我想做的事情,我可能不得不删除大部分代码,并找到一种方法用我不太熟悉的列表类型函数(如.append或.strip)重写它

import csv

original = file('southpark.csv', 'rU')

reader = csv.reader(original)

# List of Data
name, dob, descript, phrase, personality, character, apparel = []

count = 0

def southparkinfo():
for row in reader:
    count += 1
    if count == 0:
        row[0] = name
        print row[0] # Name (ex. Stan Marsh)
        print "----------------"
    elif count == 1:
        row[1] = dob
        print row[1] # DOB
        print "----------------"
    elif count == 2:
        row[2] = descript
        print row[2] # Descriptive saying (ex. Respect My Authoritah!)
        print "----------------"
    elif count == 3:
        row[3] = phrase
        print row[3] # Catch Phrase (ex. Mooom!)
        print "----------------"
    elif count == 4:
        row[4] = personality
        print row[4] # Personality (ex. Jewish)
        print "----------------"
    elif count == 5:
        row[5] = character
        print row[5] # Characteristic (ex. Politically incorrect)
        print "----------------"
    elif count == 6:
        row[6] = apparel
        print row[6] # Apparel (ex. red gloves)
    return

reader.close()

首先,请看一看。

了解了基本知识后,请看一下此代码。这将使您走上正确的道路:

import csv

original = file('southpark.csv', 'rU')
reader = csv.reader(original)

for row in reader:
    #will print each row by itself (all columns from names up to what they wear)
    print row
    print "-----------------"
    #will print first column (character names only)
    print row[0]
您希望导入csv模块,以便可以使用csv文件类型。以通用换行符模式打开文件,并使用csv.reader读取。然后,您可以使用
for
循环,根据需要开始遍历行。第一个
打印行
将打印一行单个角色的所有数据(即:从姓名到服装类型的所有数据),如下所示:

['Stan Marsh', 'DOB: October 19th', 'Dude!', 'Aww #$%^!', 'Star Quarterback', 'Wendy', 'red gloves']

-----------------
['Kyle Broflovski', 'DOB: May 26th', 'Kick the baby!', 'You ***!', 'Jewish', 'Canadian', 'Ushanka']
-----------------
['Eric Theodore Cartman', 'DOB: July 1', 'Respect My Authroitah!', 'Mooom!', 'Big-boned', 'Political
ly incorrect', 'Knit-cap!']
-----------------
['Kenny McCormick', 'DOB: March 22', 'DOD: Every other week', 'Mmff Mmff', 'MMMFFF!!!', 'Mysterion!'
, 'Orange Parka']
-----------------
['Leopold Butters Stotch', 'DOB:Younger than the others!', 'The 4th friend', 'Professor chaos', 'stu
tter', 'innocent', 'nerdy']
-----------------
最后,第二条语句
print row[0]
将只提供字符名。您可以更改号码,并且可以根据需要获取其他数据。请记住,在CSV文件中,所有内容都从0开始,因此在您的情况下,只能增加到6,因为
a=0、B=1、C=2等等。
要更清楚地查看这些输出,最好是注释掉其中一条
print
语句,以便更清楚地了解您正在获取的内容

-----------------
Stan Marsh
-----------------
Kyle Broflovski
-----------------
Eric Theodore Cartman
-----------------
Kenny McCormick
-----------------
Leopold Butters Stotch
注意我加入了
打印“-----------------”
以便您能够看到不同的输出。 希望这能帮助你从一开始

编辑回答第二个问题:获取单个角色所有信息的最简单方法(尽管可能不是最好的方法)是执行以下操作:

import csv

original = file('southpark.csv', 'rU')
reader = csv.reader(original)

stan = reader.next()
kyle = reader.next()
eric = reader.next()
kenny = reader.next()
butters = reader.next()

print eric
哪些产出:

['Eric Theodore Cartman', 'DOB: July 1', 'Respect My Authroitah!', 'Mooom!', 'Big-boned', 'Politically incorrect', 'Knit-cap!']

请注意,如果您的CSV被修改为字符顺序被移动(例如:butters被移动到顶部),您将输出另一个字符的信息

你为什么不把讲稿通读一遍呢?我相信你的教授一定讲过一些简单的数据挖掘?