我正在通过自动化无聊的东西中的renameDates项目。它应该匹配形成美国方式的日期,并将它们改为欧洲格式。
我对这段代码不了解的是,它如何找到正确的目录?
我找不到任何将当前工作目录设置为我需要它工作的文件的代码,但是脚本似乎是假定默认的当前工作目录应该在哪里工作。
是不是很简单,从我想搜索正则表达式的文件中运行脚本会使Python将该文件设置为CWD?
#! 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)- # on or two digits for the day
((19|20)\d\d) #four digits for the year
(.*?)$ # 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
答案 0 :(得分:0)
嘿,你从终端或口译员运行你的代码?它使用当前的工作目录。 Normaly它是启动脚本/ python解释器之前的目录...您可以使用此代码检查当前的工作目录...希望这可以帮助您:
import os
print(os.getcwd())
您可以使用以下命令更改工作目录:
os.chdir(path)
答案 1 :(得分:0)
您可以在工作目录中创建一个日期为11-11-2011的txt文件,当您运行该程序时,您会看到名称已更改