2015-06-05 45 views
0

我正在編寫一個簡單的腳本來搜索.txt文檔中的搜索詞。該腳本到目前爲止將: •提示輸入一個文件名 •提示輸入一個詞來搜索Python腳本類型錯誤:強制爲Unicode:需要字符串或緩衝區,找到列表

的提示工作,其次是「類型錯誤:強迫爲Unicode:需要字符串或緩衝區,發現清單」。我已閱讀關於此錯誤的其他帖子,但無法確定發生這種情況的原因,因此我可以繼續執行以下步驟: •以附加模式打開文件 •追加(打印)關鍵字顯示的行數在文件中。

請注意:這工作,直到我添加用戶提示。

import sys 
import os 

f = file(raw_input("Enter filename: "), 'a') 
name_file = raw_input("Input search terms, comma separated: ").lower().split(",") 
my_file = open(name_file, "a") 
#removed {open(name_file}[0] from above line 
search = [x.strip(' ') for x in f] 
count = {} 
+1

爲什麼你想打開的關鍵字列表? –

+0

爲了清晰起見進行了編輯。我試圖在文件中搜索特定單詞,我知道「關鍵字」具有不同的含義。 – Rampant

+0

我知道看起來你通過發佈dup得到了更多,但請不要再這樣做。通常情況下,這個問題將作爲你現有問題的一個重複來解決,但這個問題措辭更好,似乎有所幫助。將來,只需編輯您現有的問題。 –

回答

1

string.split(",")

返回一個字符串列表。即:

>>myString = "Hello buddy, how are you?" 

>>myList = mystring.split(",") 

>>myList 
["Hello buddy"," how are you?"] 

name_file是一個列表,你的代碼爆炸,因爲開放需要一個字符串作爲第一個參數,而不是一個列表

0

我建議sys.argv中。

你運行一個命令:

$ myscript.py file.txt term1 term2 term3 

腳本:

import sys 

print sys.argv 

輸出:

['./myscript.py', 'myscript.py', 'file.txt', 'term1', 'term2', 'term3'] 
+0

有沒有辦法將命令合併到腳本中? – Rampant

相關問題