Python strTime不返回日期,但返回整个文本文件

Python strTime不返回日期,但返回整个文本文件,python,date,datetime,text-files,strptime,Python,Date,Datetime,Text Files,Strptime,我试图从文本文件中删除日期,但到目前为止,我尝试的所有操作都返回整个文本文件,减去换行符和特殊字符。为了检查我的代码,我将文本文件精简为一个短段落。文本文件的内容如下: import datetime reports = open('C:/Users/onlyn_000/Desktop/Daily_Reports.txt').read() print(datetime.datetime.strptime(reports, '%m/%d/%Y').date()) import datetime

我试图从文本文件中删除日期,但到目前为止,我尝试的所有操作都返回整个文本文件,减去换行符和特殊字符。为了检查我的代码,我将文本文件精简为一个短段落。文本文件的内容如下:

import datetime

reports = open('C:/Users/onlyn_000/Desktop/Daily_Reports.txt').read()
print(datetime.datetime.strptime(reports, '%m/%d/%Y').date())
import datetime
import re

reports = open('C:/Users/onlyn_000/Desktop/Daily_Reports.txt').read()
dates = re.findall('[0-9][0-9]\/[0-9][0-9]\/[0-9]*', reports)

for x in dates:
    print(datetime.datetime.strptime(x, '%m/%d/%Y').date())
2018年1月3日

L205:

现场上午7:00,现场无工作人员

在现场,上午11:30,船员们已经开挖了船坞,正在浇水 用于放置和压实的岩石。对开挖进行测量,并 满足要求,包括在计划上过度强调。场外12:00 首相

CBK-54:

现场上午7:10机组正在安装RCP,机组已安装 距离人孔大约80英尺。泥浆到达人孔 泥浆在适当的位置。场外上午8:30

在现场下午1:10,工作人员安装了更多RCP,并且正在接近 完成土壤保持得很好。场外下午1:40

我想从名为“Daily_Reports.txt”的文本文件中删除日期“03/01/2018”,该文件存储在我的桌面上

到目前为止,我尝试的代码如下:

import datetime

reports = open('C:/Users/onlyn_000/Desktop/Daily_Reports.txt').read()
print(datetime.datetime.strptime(reports, '%m/%d/%Y').date())
import datetime
import re

reports = open('C:/Users/onlyn_000/Desktop/Daily_Reports.txt').read()
dates = re.findall('[0-9][0-9]\/[0-9][0-9]\/[0-9]*', reports)

for x in dates:
    print(datetime.datetime.strptime(x, '%m/%d/%Y').date())
我甚至不确定这是否是解决我问题的正确方法。最后,我想把每个站点(L205、CBK-54等)的每个句子/段落拉出来,输入excel电子表格,甚至每天单独的文本文件。作为第一步,我只想把日期去掉。如有任何意见,将不胜感激

编辑:

下面的mobone给出了这个问题的答案。为我工作的代码如下:

import datetime

reports = open('C:/Users/onlyn_000/Desktop/Daily_Reports.txt').read()
print(datetime.datetime.strptime(reports, '%m/%d/%Y').date())
import datetime
import re

reports = open('C:/Users/onlyn_000/Desktop/Daily_Reports.txt').read()
dates = re.findall('[0-9][0-9]\/[0-9][0-9]\/[0-9]*', reports)

for x in dates:
    print(datetime.datetime.strptime(x, '%m/%d/%Y').date())
编辑2:


供将来读者参考。我还意识到re.findall返回一个列表,而我编写的for循环只将日期重新格式化为datetime格式。我甚至不确定我的应用程序是否需要datetime格式,我可能只能使用列表

您必须查看
re.findall(“[0-9][0-9]\/[0-9][0-9]\/[0-9]*”,报告)
才能从文件中提取日期字符串。然后使用strtime来解析它

您正在一行中处理整个文件。你期望什么?你想找到哪段文字的日期时间?克里斯,我想找到月份、日期和年份的日期时间。Stephen Rauch坦率地说,我希望它去掉datetime,但显然这不起作用,所以我假设我对strTime的工作原理以及最佳方法有误解。我的理解是,它将删除任何给定字符串的日期。到目前为止,您的答案似乎有效。我不明白为什么。对于任何可能找到这条线索的人来说,有效的解决方案就是完全按照mobone所描述的那样去做。这将生成一个列表,该列表可以循环打印每个日期。工作的代码将被编辑到原始注释中。这使用正则表达式。RE尝试将给定表达式与提供的字符串匹配。在本例中,其两个数字的范围为[0-9][0-9],后跟斜杠等。请访问regex101.com,以更具交互性的方式进行尝试。正则表达式非常强大,有自己的语法。你应该花些时间来学习它们的语法。我以前听说过正则表达式。我了解了正则表达式的要点,但是我没有花足够的时间使用它们来了解我应该了解的内容,我相信这是很清楚的。我想我的问题更多的是关于为什么必须使用正则表达式,以及为什么不能使用datetime.strtime。我还要承认,我对datetime库和模块了解不多,除了我在回答类似问题时看到的情况。我想我也应该对整个库做些功课。Datetime.StrTime接受一个字符串,特别是一个可以格式化为Datetime对象的字符串,并且只接受字符串的那一部分。Datetime.strTime不会获取文本块并从中提取日期时间。您只提供包含日期的字符串,并且只提供其中的日期。strtime的format部分必须与字符串中的字母完全匹配。