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

基本上我的问题是这样的:我有一个CSV的excel文件与Southpark字符的信息,我和我有一个HTML模板,我要做的是按行(存储在列表中)为每个字符的数据和使用HTML模板给予实现该数据创build5个独立的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() 

上面列出了五行IDLE shell的所有信息,但我必须find一种方法来分隔每一行和列,并将其存储到一个列表(我不知道该怎么办)。 这是非常基本的代码,我知道我想找出一种方法来存储行和列首先,然后我将不得不使用函数(def)首先分配数据到HTML模板,然后创build一个HTML文件数据/模板..我到目前为止是一个noob我试图通过networkingsearch,但我只是不明白的东西。

我不允许使用任何可下载的模块,但是我可以使用Python中的内容,比如import csv或者whatnot,但是实际上它应该是用几个函数,列表,string和循环编写的。

一旦我弄清楚如何分隔行和列并存储它们,那么我可以在HTML模板中实现并创build文件。

我不想让我的硬件为我完成这只是我非常糟糕的编程,所以任何帮助表示赞赏!

BTW我正在使用Python 2.7.2,如果你想DL的CSV文件请点击这里 。


更新:

好的,非常感谢! 这帮助我了解每一行正在打印的内容以及该程序正在读取什么信息。 现在因为我不得不在这个程序中使用函数,所以我就是这么想的。

每行(0-6)打印出不同的值,但只是打印行function打印出一个字符和所有他对应的值,这是我所需要的。 我想要的是打印出像“打印行”的数据,但我必须将这5个字符中的每一个存储在一个单独的列表中。

基本上“打印行”打印出每个相应属性的所有5个字符,我怎样才能将它们分成5个variables并将它们存储为列表?

当我打印行[0]时只打印出名字,或者打印行1只打印DOB。 我正在考虑创build一个def函数,它只需要打印“row”,并在循环中分成5个variables,然后另一个def函数将这些variables/数据列表结合起来,并将它们与HTML模板结合起来,最后我必须弄清楚如何在Python中创buildHTML文件

对不起,如果我听起来很混乱,只是想了解一切。 这是我的代码现在它提供了一个错误,有太多的值解压缩,但我只是试图摆弄,尝试不同的事情,看看他们的工作。 基于我想要做的上面,我可能不得不删除所有这些代码,并find一种方式来重写列表types的function,如.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() 

首先,看看CSV文档 。

一旦你了解了基础知识,看看这个代码。 这应该让你开始正确的道路:

 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] 

您想要import csv模块,以便您可以使用CSV文件types。 以通用换行模式打开文件,并用csv.reader读取。 然后你可以使用for循环来开始遍历行,这取决于你想要的。 第一个print row打印所有单个字符的数据(即:从他们的名字到他们的服装types的所有内容)的一行:

 ['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, etc...要更清楚地看到这些输出,你注释掉其中一个print语句,以便更清楚地了解你所抓的内容。

 ----------------- Stan Marsh ----------------- Kyle Broflovski ----------------- Eric Theodore Cartman ----------------- Kenny McCormick ----------------- Leopold Butters Stotch 

注意我扔了那个print "-----------------"所以你将能够看到不同的输出。 希望这可以帮助你开始。

编辑要回答你的第二个问题:最简单的方法(尽pipe可能不是最好的方法)抓住所有单个人物的信息将是这样的:

 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被修改,使得字符顺序被移动(例如:黄油被移动到顶部),您将输出另一个字符的信息。