0

我目前正在尝试编写一个函数,该函数ticker()将打开一个文件并读取它并要求用户输入公司名称。当用户输入公司名称时,它将返回该公司的股票代码。

还给出了一个数据文件,格式如下:

Name of Company #1
Ticker Symbol of Company #1
Name of Company #2
Ticker Symbol of Company #2
...

我需要的视图是这样的:

ticker('test.txt')
Enter Company Name: YAHOO
Ticker: YHOO

我目前的代码是:

def ticker(x):
    d = {}
    infile = open(x,'r')
    content = infile.readlines()
    for line in (x):
        file = line.split('\n')

但是现在我完全迷失了如何计算这个。

4

4 回答 4

0

要么改变你的文件格式,要么试试这个:

ticker = {}
for company, ticker in (x):
    ticker[company] = ticker

这将为您提供一个字典,它可以以类似的方式访问dictionary[key]并返回其值。我敢肯定,如果您通过 google 获取用户输入,您可以使其正常工作。也许应用大小写转换,以便用户输入的大小写无关紧要。

如果这还不能让你走得更远,请考虑更加努力/聘请顾问或提出问题,表明你确实付出了努力。

于 2013-03-11T09:13:31.727 回答
0

我不确定您正在读取的文件的格式是什么,但以下代码将读取文件并将其分解为非空行。

def ticker(filename):
    lines = open(filename).read().split('\n')
    lines = [x in lines if x]
于 2013-03-11T09:08:07.543 回答
0

如果您确定数据文件的格式,可以使用下面的代码,但请始终记住,在不处理可能的异常的情况下处理文件不是一个好主意。

def ticker(filename):
    with open(filename, 'r') as f:
        lines = [line.strip() for line in f.readlines()]
        return dict(zip(lines[::2], lines[1::2]))

data = ticker('test')
name = raw_input('Enter Company Name: ')
print 'Ticker:', data.get(name.strip(), 'Not Found!')
于 2013-03-11T09:14:20.600 回答
0

下面是一个非常原始和简单的实现,您可以改进它。

def ticker(filename):
    name = raw_input("Enter Company Name:")
    f = open(filename, "r")
    l = f.readline()
    ticker = ''
    while l:
        if l.strip() == name:
            ticker = f.readline().strip()
            break
        else:
            l = f.readline()
    if ticker:
        print "Ticker: %s" % ticker
    else:
        print "Ticker not found!"

ticker("1.txt")
于 2013-03-11T09:15:34.863 回答