我正在尝试编写一个函数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')
但现在我完全迷失了如何计算它。
答案 0 :(得分:0)
我不确定您正在阅读的文件的格式是什么,但以下代码将在文件中读取并将其分解为非空行。
def ticker(filename):
lines = open(filename).read().split('\n')
lines = [x in lines if x]
答案 1 :(得分:0)
更改文件格式,或尝试此操作:
ticker = {}
for company, ticker in (x):
ticker[company] = ticker
这会给你一个dictionary,可以像dictionary[key]
这样的方式访问它并返回它的值。我相信如果你谷歌获得用户输入,你可以让它工作。也许应用案例转换,以便用户输入的大小写无关紧要。
如果这不能带你走得太远,可以考虑更加努力/雇用一名顾问,或者提出一些问题,证明你在实际上付出了努力。
答案 2 :(得分: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!')
答案 3 :(得分: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")