Goo*_*ose 2 html python csv excel
基本上我的问题是:我有一个包含Southpark字符信息的CSV excel文件,我和我有一个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()
Run Code Online (Sandbox Code Playgroud)
上面打印出五行中IDLE shell的所有信息,但我必须找到一种方法来分隔每一行和列并将其存储到一个列表中(我不知道该怎么做).这是非常基本的代码我知道我正试图找出一种方法来存储行和列,然后我将不得不使用函数(def)首先将数据分配给HTML模板,然后从中创建一个HTML文件那个数据/模板......我到目前为止一个菜鸟我尝试通过网络搜索,但我只是不明白这些东西.
我不允许使用任何可下载的模块,但我可以使用Python内置的东西,如import csv或whatnot,但实际上它应该用一些函数,列表,字符串和循环来编写.
一旦我弄清楚如何分隔行和列并存储它们,那么我就可以在HTML模板中实现并创建文件.
我不是想为我完成我的硬件,只是因为我非常喜欢编程,所以任何帮助都表示赞赏!
BTW我正在使用Python 2.7.2,如果你想要DL文件,请点击这里.
更新:
好的,非常感谢!这有助于我了解每行打印的内容以及程序正在读取的信息.既然我必须在这个程序中使用函数,这就是我在想的.
每行(0-6)打印出单独的值,但只有打印行功能打印出一个字符及其所有相应的值,这是我需要的.我想要的是打印出像"打印行"这样的数据但是我必须将这5个字符中的每一个存储在一个单独的列表中.
基本上"打印行"使用每个相应的属性打印出所有5个字符,如何将它们分成5个变量并将它们存储为列表?
当我打印行[0]时,它只打印出名称,或者打印行1只打印DOB.我正在考虑创建一个def函数,它只打印"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()
Run Code Online (Sandbox Code Playgroud)
首先,请查看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]
Run Code Online (Sandbox Code Playgroud)
您想要import csv
模块,以便可以使用CSV文件类型.以通用换行模式打开文件,并使用csv.reader读取它.然后,您可以使用for
循环开始迭代行,具体取决于您想要的内容.第一个print row
将打印所有单个字符数据的单行(即:从名称到服装类型的所有内容),如下所示:
['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']
-----------------
Run Code Online (Sandbox Code Playgroud)
最后,第二个语句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
Run Code Online (Sandbox Code Playgroud)
注意我投入了,print "-----------------"
所以你可以看到不同的输出.希望这可以帮助您开始.
编辑回答你的第二个问题:获取所有单个角色信息的最简单方法(虽然可能不是最好的方法)是做这样的事情:
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
Run Code Online (Sandbox Code Playgroud)
哪个输出:
['Eric Theodore Cartman', 'DOB: July 1', 'Respect My Authroitah!', 'Mooom!', 'Big-boned', 'Politically incorrect', 'Knit-cap!']
Run Code Online (Sandbox Code Playgroud)
请注意,如果您的CSV被修改以便移动字符的顺序(例如:黄油被移动到顶部),您将输出另一个字符的信息.
归档时间: |
|
查看次数: |
9426 次 |
最近记录: |