Python在文档

时间:2016-03-20 14:44:13

标签: python-2.7 variables readlines

我有一个名为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]中的元组调用它,那也可能有效。

1 个答案:

答案 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)

此代码以此格式返回信息: 名称 - (名称),头发颜色 - (头发颜色),年龄 - (年龄)。 注意:此代码只能搜索名称,而不能添加它们