使用Python3检测日期格式并将其转换为MM-DD-YYYY

2023-11-30

我正在尝试使用 Python 3.6 转换日期格式并使它们在整个文档中统一。
这是我的文档中的日期示例:(由于文档很大,可以有其他格式。)

9/21/1989
19640430
6/27/1980
5/11/1987
Mar 12 1951
2 aug 2015

我已经检查过datetime图书馆。但无法理解如何自动检测和更改日期的格式。这是我到目前为止检查过的内容:

>>> from datetime import datetime
>>> oldformat = '20140716'
>>> datetimeobject = datetime.strptime(oldformat,'%Y%m%d')
>>> newformat = datetimeobject.strftime('%m-%d-%Y')
>>> print (newformat)
07-16-2014

但我不明白如何让程序自动检测日期模式并将它们转换为一种统一的日期模式,如下所示mm/dd/yyyy
请建议我需要做什么,以便使用 Python 3.6 实现我的目标。


没有通用的 Python 方法可以做到这一点,但我建议使用正则表达式来识别类型,然后正确转换它:

示例Python

import re
from datetime import datetime

with open("in.txt","r") as fi, open("out.txt","w") as fo:
    for line in fi:
        line = line.strip()
        dateObj = None
        if re.match(r"^\d{8}$", line):
            dateObj = datetime.strptime(line,'%Y%m%d')
        elif re.match(r"^\d{1,2}/", line):
            dateObj = datetime.strptime(line,'%m/%d/%Y')
        elif re.match(r"^[a-z]{3}", line, re.IGNORECASE):
            dateObj = datetime.strptime(line,'%b %d %Y')
        elif re.match(r"^\d{1,2} [a-z]{3}", line, re.IGNORECASE):
            dateObj = datetime.strptime(line,'%d %b %Y')
        fo.write(dateObj.strftime('%m-%d-%Y') + "\n")

输入示例

9/21/1989
19640430
6/27/1980
5/11/1987
Mar 12 1951
2 aug 2015

示例输出

09-21-1989
04-30-1964
06-27-1980
05-11-1987
03-12-1951
08-02-2015
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用Python3检测日期格式并将其转换为MM-DD-YYYY 的相关文章

随机推荐

  • 使用 Apache Spark 将键值对简化为键列表对

    我正在编写一个 Spark 应用程序 想要组合一组键值对 K V1 K V2 K Vn 成一个键 多值对 K V1 V2 Vn 我觉得我应该能够使用reduceByKey带有某种味道的函数 My KMV My KV reduce lambd
  • NSString:isEqual 与 isEqualToString

    有什么区别isEqual and isEqualToString 为什么类要添加 isEqualTo 方法 对于 NSArray 来说是 isEqualToArray 对于 NSData 来说是 isEqualToData 而不是仅仅重写i
  • AFNetworking 表单请求(一个请求中上传多个文件)

    我们正在开发一个 iOS 应用程序 该应用程序在一个请求中提供单个以及多个文件上传选项 我使用 AFNetworking 进行单个文件上传 效果很好 现在 我们需要支持多个文件上传 我有 html 代码 它实际上可以从网络上传多个文件 我需
  • DISPID_VALUE 对于从脚本调用 IDispatch 是否可靠?

    继续从这个问题 我很困惑是否DISPID VALUE on IDispatch Invoke 脚本函数和属性 在我的例子中是 JavaScript 可以被认为是标准且可靠的 用于调用由IDispatch 如果是 MSDN 中是否提到过 请注
  • Java全屏独占模式

    我使应用程序在独占模式下全屏显示 但是当我显示输入对话框时 应用程序被最小化 我希望应用程序保持全屏 并在其上显示输入对话框 这就是我全屏渲染应用程序的方式 setUndecorated true GraphicsEnvironment g
  • CIPhotoEffect CIFilters 在色彩管理方面是不变的。是什么赋予了 CIPhotoEffect 滤镜这个属性?

    给这个问题一些背景 ho ho 我在 iOS 下对 CIFilter 进行子类化 以便创建一些自定义照片效果滤镜 根据文档 这意味着创建一个 复合 过滤器 将一个或多个预先存在的 CIFilter 封装在我的自定义 CIFilter 子类的
  • 如何让 iPhone 在播放视频时自动锁定

    如何允许 iOS 设备在使用 AVFoundation 播放视频时调暗屏幕并自动锁定设备 使用 AVPlayer 播放视频默认禁用屏幕自动锁定 无论如何 是否可以在不暂停视频播放的情况下重新启用它 为什么你想让屏幕在播放视频时处于空闲状态
  • C# 同时运行多个异步任务

    我对异步任务有点陌生 我有一个函数 可以获取学生 ID 并从特定大学网站上抓取具有所需 ID 的数据 private static HttpClient client new HttpClient public static async T
  • 如何使用从数据库派生的相对文件路径将 WPF 图像元素绑定到本地硬盘驱动器上的 PNG?

    我在本地硬盘上有一个文件夹 其中有几张图像 图像名称 路径存储在本地 SQLCE 数据库中 在 WPF 应用程序中 我尝试将这些图像绑定到 Image 元素 最终进入列表框 我已经运行和编译了应用程序 并且列表框显示出来 但没有图像应该在的
  • 错误:0909006C:PEM 例程:get_name:无起始行 - 适用于 heroku 中的谷歌云平台

    当我尝试使用 google cloud storage 时 它 返回此错误 Error error 0909006C PEM routines get name no start line 2021 12 13T10 36 19 80082
  • Apache Ivy:解决安装程序中嵌入的依赖关系

    我在构建时遇到问题 必须通过 Apache Ivy 解决非标准工件 Problem 我依赖于两个工件 a jar 和 a lib jar 这两个依赖项仅作为单个安装程序 a installer jar 的一部分 安装程序可以下载 但嵌入的工
  • 使用 Core Audio 获取麦克风输入和扬声器输出

    所以我最近研究了一些核心数据 但仍然是一个新手 我无法理解我正在访问哪些数据以及它如何影响整体数据流 因此 对于一些背景知识 我有一个使用 webRTC 在手机之间进行视频 音频流传输的应用程序 但是 我想检查通过麦克风输入设备的数据以及通
  • cUrl 不带 http://www 的域

    您好 我有一个域 我想用 cUrl 解析 情况如下 当我进入域时http register metsad ee avalik info teatis php too id 2942704201 它会将我重定向到 register metsa
  • 如何修复 Dagger 2 错误“...无法提供 [...]”?

    这是一个规范问题因为这是 Dagger 2 的一个常见错误 如果您的问题被标记为重复请仔细阅读这篇文章并确保了解此错误的含义以及发生的原因 如果这篇文章不适合您 请务必包含 where and how 您提供提到的课程并包括完整的错误消息在
  • 解析短语动词

    有人尝试过用斯坦福 NLP 解析短语动词吗 问题出在可分离短语动词上 例如 climb up do over 我们爬上了那座山 我必须把这项工作重新做一遍 第一个短语在解析树中看起来像这样 VP VBD climbed ADVP IN th
  • 移动电话/手机上的 OpenID

    我正在尝试在我的网站 ASP net MVC dotnetopenid 的移动版本上设置 OpenID 身份验证 当我早些时候测试它时 使用 WAP 互联网 索尼爱立信 w200i 它重定向到提供商 但启动速度非常慢 然后由于我怀疑页面太大
  • 自定义搜索栏(拇指大小、颜色和背景)

    I would like to have this seekbar in my Android project 这是我的搜索栏
  • 在 jsPdf 自动表格自定义宽度列中遇到麻烦

    大家好 我正在尝试增加我指定的列大小列大小 所以我像这样使用 columnStyles xxx columnWidth 18 列大小增加 但下一行受到影响 这意味着下一行是theme grid 意味着它不起作用 有人可以帮我解释一下吗 这是
  • 如何等待网页完全加载后再继续脚本?

    在继续执行脚本之前如何等待网页完全加载 我知道如果您希望它等待 4 秒 您可以使用延迟 4 但这不够安全 在 VBA 中 您有一个始终有效的简单代码 如下所示 Dim x As String x https na6 salesforce c
  • 使用Python3检测日期格式并将其转换为MM-DD-YYYY

    我正在尝试使用 Python 3 6 转换日期格式并使它们在整个文档中统一 这是我的文档中的日期示例 由于文档很大 可以有其他格式 9 21 1989 19640430 6 27 1980 5 11 1987 Mar 12 1951 2 a