2012-12-13 86 views
0

我想基本上從keywords.txt獲取數據並將其放入列表中。然後,如果用戶在表單中輸入的數據不在列表中,則會將其寫入文件,並且會根據用戶是否在列表中將用戶導向某個網頁。我基本上希望文件充滿一行字的單詞,但首先我只是想讓它工作。從文本文件讀入列表,然後寫回列表Python/CGI

我很難理解用戶輸入的數據是什麼變量,如果這是有道理的。

#!/usr/bin/env python 
import cgi 
import cgitb 
cgitb.enable() 

form = cgi.FieldStorage() 
keyword = form.getvalue('keyword') 


print 'Content-type: text/html\r\n\r' 
print '<html>' 
print '<h1>Please enter a keyword of your choice</h1>' 
print '<form action="results.cgi" method="post">' 
print 'Keyword: <input type="text" name="keyword"> <br />' 
print '<input type="submit" value="Submit" />' 
print '</form>' 
print '</html>' 

keylist = [] 
f = open('keywords.txt', 'rw') 
for each in f.readline(): 
    keylist.append(each) 

if keyword in keylist: 
    print 'Location: %s' % # my url 

else: 
    f.write(keyword) 
    f.close() 
    print 'Location: %s' % # my second url 

回答

0
for each in f.readline() 

僅使用第一行,f.readline的結果。因此,每個變量都是第一行的每個字符。

如果使用

for each in f.read().split() 

你應該得到你想要的。 f.read()讀取整個文件一次,並且分裂()處分割的換行符(和所有類型的白空間)

除此之外,你應該使用RW +模式打開該文件,否則你會得到一個IOError。

+1

或'for line in f.readlines()' – Hyperboreus

+0

感謝您的回答。但是我仍然想知道如何知道用戶輸入的變量是什麼,所以我可以將其添加到我的文件中。如果你現在看到我有「如果在關鍵詞中的關鍵字」和「f.write(關鍵字)」,但這是不正確 – Neemaximo

+1

也許嘗試:'關鍵字=形式['關鍵字']。價值' – Hyperboreus

0

不直接關係到你的問題,但閱讀你的代碼,我看到了,那你只是接近文件,如果關鍵字鍵列表

也許你想移動

f.close()

下面的其他條件。只是一個想法,但。

是的,我會回答去從Hyperboreus

爲線f.readlines():#WHERE線也很容易成爲你的 '每個'

相關問題