从文本文件创建表格

0 投票
1 回答
969 浏览
提问于 2025-04-18 05:48

我正在尝试使用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 + ']'

撰写回答