我有一个名为a.doc格式的doc:
姓名 - 鲍勃
头发颜色 - 红色
年龄 - 28岁 ...
我想将“名称 - ”“头发颜色 - ”之后的信息保存到变量中,以便稍后在脚本中进行访问。最简单的方法是创建一个列表:
Keywords = (Name, 'Hair color', Age)
Fileopen = open(a.doc)
Filecontent = readlines(fileopen)
For keywords in filecontent:
这是我被卡住的地方。我想我可以添加一个声明,允许在每行中的“ - ”之后抓取。
编辑: 更准确地说,我对我要做的事情的解释: 我想在' - 之后分别获取每行中的信息 - '并将其存储在变量中。例如,名称 - Bob将以等于'Bob'的名称存储。
自从我之前的更新以来,我在这里取得了一些进展。我只知道我这样做的方式不容易重复。
我已成功利用以下信息提取信息:
filename = raw_input("choose your file: ")
print "you chose: %r" % filename
with open(filename) as fo:
for line in fo:
if "Name" in line: name = line.split(" - ", 1)[1]
print name
fo.close()
我知道我可以继续为我想要提取的每个字符串创建一个新的'if'语句,但显然这不是最快的方法。
我的真实问题: 如何将if语句放入循环中以检查多个字符串并将它们分配给单独的变量?
最后我真的只是想使用这些变量并重新排序它们的打印方式,这就是我需要将它们分开的原因。我试图使用'关键字',但不知道如何允许它动态地将每个关键字定义为我想要的变量。我应该将它们添加到列表或元组中,然后以这种方式调用它们吗?变量名在程序之外显然没有任何意义,所以如果我从[0]中的元组调用它,那也可能有效。
答案 0 :(得分:0)
此代码询问此人的姓名,年龄和头发颜色,然后在将信息存储在变量Filecontent中时返回此人的信息,并存储直到您关闭shell:
def namesearch(Name, Hair, Age):
Keywords = ('Name - ' + Name + ', Hair Color - ' + Hair \
+ ', Age - ' + Age)
Fileopen = open('a.doc', 'r')
for line in Fileopen:
if Keywords in line:
global Filecontent
Filecontent = line
print line
Name = raw_input('Enter the person\'s name: ')
Hair = raw_input('Enter the person\'s hair color: ')
Age = raw_input('Enter the person\'s age: ')
namesearch(Name, Hair, Age)
此代码以此格式返回信息: 名称 - (名称),头发颜色 - (头发颜色),年龄 - (年龄)。 注意:此代码只能搜索名称,而不能添加它们