在DOC

2016-03-20 36 views
0

串線後的Python的保存其餘的我有一句話叫a.doc DOC格式:在DOC

名稱 - 鮑勃

頭髮顏色 - 紅色

年齡 - 28 ...

我想將「姓名 - 」「頭髮顏色 - 」...之後的信息保存到腳本後面訪問的變量中。最簡單的方法是創建一個列表:

Keywords = (Name, 'Hair color', Age) 
Fileopen = open(a.doc) 
    Filecontent = readlines(fileopen) 
     For keywords in filecontent: 

這是我卡住的地方。我想我可以添加一個聲明,允許在每行中的「 - 」後面抓取。

編輯: 要在我的東西,我希望做的解釋更精確: 我想抓住每一行的信息之後單獨「 - 」,並將其存儲在一個變量。例如名稱 - 鮑勃將以等同於'鮑勃'的名字存儲。

自從上次更新以來,我已經取得了一些進展。我只知道我這樣做的方式不容易重複。

我已經成功地拉到利用信息:

filename = raw_input("choose your file: ") 
print "you chose: %r" % filename 
with open(filename) as fo: 
    for line in fo: 
     if "Name" in line: name = line.split(" - ", 1)[1] 
print name 
fo.close() 

我知道我可以繼續做一個新的「如果」我的每個字符串的發言中,我想拉,但顯然這ISN」最快的方式。

我的真正的問題: 如何使if語句成爲一個循環,將檢查多個字符串並將它們分配給單獨的變量?

最後,我真的只是想使用這些變量,並重新排列它們的打印方式,這就是爲什麼我需要它們分開。我試圖使用'關鍵字',但不知道如何讓它動態定義每個我想要的變量。我應該將它們添加到列表還是元組中,然後以這種方式調用它們?變量名在程序之外顯然沒有意義,所以如果我像[0]中那樣從一個元組中調用它,那也可以。

+0

我不完全清楚你想要存儲什麼。你是否想要存儲關鍵「頭髮顏色」和它的價值「紅色」?如果是的話,那麼字典可能是要走的路。 – mmenschig

回答

0

此代碼詢問姓名,年齡,和人的頭髮的顏色,然後返回此人的信息,同時存儲在變量Filecontent的信息並保存,直到您關閉Shell:

def namesearch(Name, Hair, Age): 
Keywords = ('Name - ' + Name + ', Hair Color - ' + Hair \ 
     + ', Age - ' + Age) 
Fileopen = open('a.doc', 'r') 
for line in Fileopen: 
    if Keywords in line: 
     global Filecontent 
     Filecontent = line 
     print line 

Name = raw_input('Enter the person\'s name: ') 
Hair = raw_input('Enter the person\'s hair color: ') 
Age = raw_input('Enter the person\'s age: ') 
namesearch(Name, Hair, Age) 

這代碼以這種格式返回信息: 名稱 - (姓名),頭髮顏色 - (頭髮顏色),年齡 - (年齡)。 注意:此代碼只能搜索名稱,不能添加它們