我正在编写一个简单的脚本来搜索.txt文档中的搜索词。到目前为止的脚本将: •提示输入文件名 •提示单词搜索
提示有效,然后是“TypeError:强制转换为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 = {}
答案 0 :(得分:1)
string.split(",")
返回字符串列表。即:
>>myString = "Hello buddy, how are you?"
>>myList = mystring.split(",")
>>myList
["Hello buddy"," how are you?"]
name_file是一个列表,你的代码会爆炸,因为open需要一个字符串作为它的第一个参数,而不是列表
答案 1 :(得分:0)
我建议使用sys.argv。
您运行命令:
$ myscript.py file.txt term1 term2 term3
脚本:
import sys
print sys.argv
输出:
['./myscript.py', 'myscript.py', 'file.txt', 'term1', 'term2', 'term3']