我是否总是需要在Python中指定我当前的工作目录?

问题描述:

我正在通过在自动化钻孔东西renameDates项目。它应该符合美国方式的日期,并将它们改为欧洲格式。我是否总是需要在Python中指定我当前的工作目录?

我不明白这个代码的事情是,它是如何找到正确的目录?

我找不到任何代码将当前工作目录设置为我需要它工作的文件,但脚本似乎是在假设默认当前工作目录是它的工作目录的情况下编写的。

这是简单的,从文件运行脚本我想搜索正则表达式将使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 

嘿,你从终端或口译员运行你的代码?它使用当前的工作目录。 Normaly它就是你已经启动脚本/ Python解释器之前所在的目录...您可以使用此代码检查你当前的工作目录...希望这可以帮助你:

import os 
print(os.getcwd()) 

你可以改变工作目录:

os.chdir(path)