zoukankan      html  css  js  c++  java
  • Python学习笔记组织文件之将美国风格日期的文件改名为欧洲风格的日期

     随笔记录方便自己和同路人查阅。

    #------------------------------------------------我是可耻的分割线-------------------------------------------

      假定你的老板用电子邮件发给你上千个文件,文件名包含美国风格的日期(MM-DD-YYYY),需要将它们改名为欧洲风格的日期(DD-MM-YYYY)。手工 完

    成这个无聊的任务可能需要几天时间!让我们写一个程序来完成它。

    #------------------------------------------------我是可耻的分割线-------------------------------------------

       示例代码: 

    #! python3
    # renameDates.py - Renames filenames with American MM-DD-YYYY date format
    # to European DD-MM-YYYY.
    
    import shutil, os, re
    
    # Create a regex that matches files with the American date format.
    datePattern = re.compile(r"""^(.*?) # all text before the date
        ((0|1)?d)- # one or two digits for the month
        ((0|1|2|3)?d)- # one or two digits for the day
        ((19|20)dd) # four digits for the year (must start with 19 or 20)
        (.*?)$ # all text after the date
        """, re.VERBOSE)
    
    # Loop over the files in the working directory.
    for amerFilename in os.listdir('.'):
        mo = datePattern.search(amerFilename)
    
        # Skip files without a date.
        if mo == None:
            continue
    
        # Get the different parts of the filename.
        beforePart = mo.group(1)
        monthPart  = mo.group(2)
        dayPart    = mo.group(4)
        yearPart   = mo.group(6)
        afterPart  = mo.group(8)
    
        # Form the European-style filename.
        euroFilename = beforePart + dayPart + '-' + monthPart + '-' + yearPart + afterPart
    
        # Get the full, absolute file paths.
        absWorkingDir = os.path.abspath('.')
        amerFilename = os.path.join(absWorkingDir, amerFilename)
        euroFilename = os.path.join(absWorkingDir, euroFilename)
    
        # Rename the files.
        print('Renaming "%s" to "%s"...' % (amerFilename, euroFilename))
        #shutil.move(amerFilename, euroFilename) # uncomment after testing
    

      运行结果:

      代码把更改文件的操作注释了,换位了打印效果。如果要使用该功能需要把最后一行的注释去掉。

  • 相关阅读:
    php错误处理和异常处理
    (转)Android内存泄漏分析及调试
    (转)完美解决 Android WebView 文本框获取焦点后自动放大有关问题
    (转)Android studio 使用心得(五)—代码混淆和破解apk
    Execution failed for task ':app:clean'.
    (转)Android短信的发送和接收监听
    Android的AsyncQueryHandler详解
    (转)如何获得当前ListVIew包括下拉的所有数据?
    一个优秀的Android应用从建项目开始
    (转)Android性能优化——工具篇
  • 原文地址:https://www.cnblogs.com/lirongyang/p/9655586.html
Copyright © 2011-2022 走看看