2015-06-05 65 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

相关问题