【发布时间】:2013-11-27 23:03:10
【问题描述】:
我有一个控制台应用程序,它提示用户输入各种输入。工作正常。
现在我想在调用的函数中添加一些额外的参数,以允许用户过滤结果。特别是,我希望用户能够输入日期范围,以返回在该时间段内创建的所有记录。
我可以向函数添加两个单独的参数,例如lowerDateLimit 和upperDateLimit。但在我看来,将一对值作为一个元组接受更简洁:dateLimits,其形式为:(lowerDateLimit, upperDateLimit)。
用户在控制台中输入文本有什么方法可以格式化他们的输入,以便 Python 将其识别为列表或元组?
或者更 Pythonic 的做法是只使用两个单独的参数作为日期的下限和上限?
【问题讨论】:
-
如果您使用的是
input,请确保他们只需要输入逗号分隔值...如果您使用的是raw_input,您将始终得到一个字符串... -
您想要什么样的日期格式?
(2013, 6, 7)会起作用,还是您需要解析较少的数字格式,例如“2013 年 2 月 13 日”? -
只是一个提示:一个通用的解析库(例如
ast.literal_eval)可能会工作,但可能太笨重而不能成为一个好的实用选择。我建议选择输入格式并构建解析器,就像 @inspectorG4dget 所做的那样。 -
@DSM:我希望将多种格式的日期解析为文本。例如“2013 年 2 月 13 日”、“2013 年 2 月 13 日”、“2013 年 2 月 13 日”、“2013-02-13”。
-
@DSM:看起来dateutil 非常适合解析多种日期格式,如果我不知道将使用哪种格式。
标签: python list python-2.7 input user-input