在文件中找到一种日期格式并替换为另一种格式

时间:2017-12-20 14:56:16

标签: python python-3.x

我有大约5000个文本文件,其日期存储格式为YYYY-MM-DDTHH:MM:SS.000Z,并希望将此格式更改为MM / DD / YYYY HH:MM AM / PM。

我的优势在于知道每个日期格式前面都有字符串Closed:

我一直在使用以下内容来更改似乎有用的日期格式:

def datePrettyPrint(date):
    d = dateutil.parser.parse(date)
    return(d.strftime('%m/%d/%Y %I:%M %p'))

到目前为止,我有以下内容:

import fileinput, os

directory = "/home/ubuntu/workspace/files/"

for filename in os.listdir(directory):
    with open(filename, 'r') as file :
        filedata = file.read()

    filedata = filedata.replace('Closed: FORMAT1', 'Closed: FORMAT2')

    with open('file.txt', 'w') as file:
        file.write(filedata)

我不知道如何取走FORMAT1并将其更改为FORMAT2。我希望我离这儿很近。

编辑:文件中的文字示例

Subject: Random Text
Author: Some Name
Closed: 2014-11-21T17:39:43.000Z

Here is a message with more text

这是我试图找到和替换的第3行。

1 个答案:

答案 0 :(得分:0)

您可以使用正则表达式。网上有图案库,或者你可以自己编写。 python部分非常简单,类似于:

import re
import datetime
for match in re.findall(mySearchPattern, textToSearch)
    #convert match to new format
    datetime_object = datetime.strptime(match, "%Y-%m-%dT%H:%m:%s.000Z")
    dateNewFormat = datetime_object.strftime("%m/%d/%Y %H:%M %p")
    #substitute the old date with the new
    re.sub(match, dateNewFormat, textToSearch)