Python Script TypeError:强制转换为Unicode:需要字符串或缓冲区,找到列表

时间:2015-06-05 20:24:16

标签: python unicode typeerror raw-input

我正在编写一个简单的脚本来搜索.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 = {}

2 个答案:

答案 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']