Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在文本文件中搜索日期_Python - Fatal编程技术网

Python 在文本文件中搜索日期

Python 在文本文件中搜索日期,python,Python,请有人帮我整理一下这段代码,因为我是python新手,我认为我没有以最有效的方式编写它: elif choice == "2": birthday = input("Which birthday month do you require?e.g. /10/ : ") for line in searchfile: if birthday in line: print (line) searchfile.close 三个小贴士: 通常,使用

请有人帮我整理一下这段代码,因为我是python新手,我认为我没有以最有效的方式编写它:

elif choice == "2":
    birthday = input("Which birthday month do you require?e.g.  /10/ : ")
    for line in searchfile:
        if birthday in line:
           print (line)
searchfile.close
三个小贴士:

通常,使用
raw_input
比使用
input
更安全,因为后者在将输入传递给代码之前对其进行评估,因此允许执行任意代码

如果文件中有“10”,那么“1”也是,因此如果有人搜索一月(“1”),他们会找到一月、十月、十一月和十二月的生日。也许你可以在你的数据文件中写明出生月份

如果您只打开searchfile来读取生日数据,请等待进入
If
语句以打开它,然后使用
with
语句打开它以不可见地关闭它

我将用以下方式编写您的代码:

elif choice == '2':
    birthday = raw_input("Which birthday month do you require? e.g. January: ")
    for line in searchfile:
        if birthday in line:
            print(line)
    searchfile.close()

注意:
print(line)
在Python2.x和Python3.x中都可以使用。

如果您在这种情况下检查“10”、“11”和“12”不在该行中,您可能可以使用“1”作为出生月份,但这取决于该行中还有什么内容(例如,如果您有一个月中的几天,它将不起作用)。谢谢,为了减少混淆,我将文本文件中的月份重命名为单词而不是数字,现在它更整洁、更易于使用。如果您想查看,请在此处发布。此问题似乎与主题无关,因为它要求查看代码。因此,它更适合codereview.stackexchange.com。谢谢你,我没有意识到,但将来我会在那里发布这种东西。