Всегда ли мне нужно указывать мой текущий рабочий каталог в Python?
Я работаю через проект renameDates в Automate the Boring. Предполагается, что даты совпадений будут отформатированы по-американски и переведены в европейский формат.
Что я не понимаю в этом коде, так это как он находит правильный каталог?
Я не могу найти никакого кода, который устанавливает текущий рабочий каталог в файл, в котором он мне нужен, но сценарий кажется написанным, предполагая, что текущий рабочий каталог по умолчанию находится там, где он должен работать.
Это что-то простое, например, запуск сценария из файла, в котором я хочу искать регулярные выражения, заставит 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
1 ответ
Эй, ты запускаешь свой код из Терминала или интерпретатора? Использует текущий рабочий каталог. Обычно это каталог, в котором вы находились до запуска интерпретатора script / python... Вы можете проверить свой текущий рабочий каталог с помощью этого кода... Надеюсь, это поможет вам:
import os
print(os.getcwd())
Вы можете изменить рабочий каталог с помощью:
os.chdir(path)
Вы можете создать текстовый файл с датой в качестве имени, например 11-11-2011, в своем рабочем каталоге, и когда вы запустите программу, вы увидите, что имя изменилось