从文本文件创建表格
我正在尝试使用IMDB的一个大数据集,想把数据从一个文本文件转移到一个SQL数据库里。
现在我想把输出结果以行和列的形式打印出来,这样更方便放进数据库。
f = open("movies.list.txt","r")
movread = f.read()
f.close()
s = raw_input('Search: ')
for ns in movread.split("\n")
if s in ns:
print(ns[0:1000])
输出:
Search: #1 Single
"#1 Single" (2006) 2006-????
"#1 Single" (2006) {Cats and Dogs (#1.4)} 2006
"#1 Single" (2006) {Finishing a Chapter (#1.5)} 2006
"#1 Single" (2006) {Is the Grass Greener? (#1.1)} 2006
"#1 Single" (2006) {Stay (#1.8)} 2006
我想要的输出是这样的:
Search: #1 Single
Title Year Sub title Year
["#1 Single"] [(2006)] [2006-????]
["#1 Single"] [(2006)] [{Cats and Dogs (#1.4)}] [2006]
["#1 Single"] [(2006)] [{Finishing a Chapter (#1.5)}] [2006]
["#1 Single"] [(2006)] [{Is the Grass Greener? (#1.1)}] [2006]
["#1 Single"] [(2006)] [{Stay (#1.8)}] [2006]
我这样做的原因是为了从文件中提取出标题,然后把它放进SQL数据库里。
标题是用""包围起来的。
我在想,或许可以通过例如“和一个空格来分割行,但我尝试了不同的方法都不行。
如果需要更多信息,请随时问我!:)
1 个回答
1
你可以分别获取每一列的值,方法如下:
def get_title(x):
return x.split('"')[1]
def get_year1(x):
return x.split('(')[1].split(')')[0]
def get_subtitle(x):
try:
return x.split('{')[1].split('}')[0]
except IndexError:
return ''
def get_year2(x):
return x.split('}')[-1].strip()
然后,在你的循环中,获取每一列的值,并按照你想要的格式打印出来。比如,对于第一列,假设它叫做 x
:
title = get_title(x)
year1 = get_year1(x)
subtitle = get_subtitle(x)
year2 = get_year2(x)
print '[' + title + ']', '[' + year1 + ']', '[' + subtitle + ']', '[' + year2 + ']'