2014-05-08 162 views
0

我試着使用大數據從IMDB設置在這裏我想從一個文本文件,將數據移動到SQL數據庫創建一個從文本文件TABEL

現在我嘗試打印輸出的行和列,所以更容易放入數據庫。

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數據庫中。

的Titels由「」

我在想,也許我可能分裂由前行:「響起,然後一個空間,但我已經嘗試過不同的想法和該不會工作

只求!更多的信息:)

+0

輸入文件是製表符分隔的文件嗎?有沒有分隔列的標籤? –

+0

不,文件中的空格不是製表符分隔的@ joemar.ct –

回答

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() 

然後,在你的循環,得到EAC值h列並以您需要的格式打印它們。例如,對於第一個,假設它是x

title = get_title(x) 
year1 = get_year1(x) 
subtitle = get_subtitle(x) 
year2 = get_year2(x) 

print '[' + title + ']', '[' + year1 + ']', '[' + subtitle + ']', '[' + year2 + ']' 
+0

如何將def放入我的代碼中?我不習慣在python中定義和使用新的,所以你知道:D –

+0

你可以在'f.close()'之後加入這些函數定義。 –

相關問題