<p>下面是一个解决方案,应该给你一些想法。<strong>注意</strong>我使用StringIO只是为了示例,这样我就不必使用文件,这样示例就可以开箱即用了。您可以修改代码以从Excel文件、数据框、数据库或任何其他类型的存储中读取。那是你的选择。你知道吗</p>
<pre><code>import csv
import StringIO
data = """date,obs1,obs2
2017-01-01,23.2,30.2
2017-02-01,14.9,13.3
"""
buffer = StringIO.StringIO()
buffer.write(data)
buffer.seek(0)
def select_action():
menu = """Would you like to: (select a number)
1) See all data?
2) See data for a specific date?
3) Exit
>"""
action = raw_input(menu)
while action.strip() not in ['1', '2', '3']:
print "ERROR: Invalid action"
action = raw_input(menu)
def do_action(action):
if action == '1':
reader = csv.reader(buffer)
for line in reader:
print "\t".join(field for field in line)
elif action == '2':
reader = csv.DictReader(buffer)
date = raw_input("Select date: ").strip()
for line in reader:
if date == line['date']:
output = ''
for k, v in line.items():
output += ("%s: %s " % (k, v))
print output
# You could write a case for action 3, but it isn't necessary
# the way I've written the code.
print "Goodbye"
def run():
action = select_action()
do_action(action)
</code></pre>