WinError 2 - os.path.getmtime не находит файл в Python 3 - PullRequest
0 голосов
/ 06 марта 2019

У меня возникли проблемы с небольшим количеством кода, предназначенного для записи даты последнего изменения ряда файлов в документ CSV.

У меня все остальное работает нормально, однако эта функция возвращает:

FileNotFoundError: [WinError 2] The system cannot find the file specified: 'filenamesoandso.docx'

Вот контекст:

pathList = ["S:\\BUILDING\\",
        "S:\\ONGOING PROJECTS\FACILITY OPERATIONS\OPERATIONS\\"
        ]

def file_date_modified(pathList):
sys.stdout = open("date modified.txt", "w+")
for root, dirs, files, in os.walk(a):
    for file in files:
        if file.endswith(".pdf"):
             print(time.ctime(os.path.getmtime(file)))
        if file.endswith(".pptx"):
             print(time.ctime(os.path.getmtime(file)))
        if file.endswith(".doc"):
             print(time.ctime(os.path.getmtime(file)))
        if file.endswith(".docx"):
             print(time.ctime(os.path.getmtime(file)))
        if file.endswith(".xlsx"):
             print(time.ctime(os.path.getmtime(file)))

for a in pathList:
    file_date_modified()

Я понимаю, что эта ошибка обычно предполагает, что она смотрит внеправильный каталог, но не смог найти исправление, основанное на ответах на другие вопросы здесь.Вот пример другой функции, которую я использовал, которая работает правильно, и я не уверен, почему эта функция определяет правильный путь, а первая - нет.

def file_name_print(pathList):
sys.stdout = open("file names.txt", "w+")
for root, dirs, files in os.walk(a):
    for file in files:
        if file.endswith(".pdf"):
             print(os.path.splitext(file)[0])
        if file.endswith(".pptx"):
             print(os.path.splitext(file)[0])
        if file.endswith(".doc"):
             print(os.path.splitext(file)[0])
        if file.endswith(".docx"):
             print(os.path.splitext(file)[0])
        if file.endswith(".xlsx"):
             print(os.path.splitext(file)[0])

Я все еще новичок, так что возможно я пропускаю что-то глупое.

1 Ответ

0 голосов
/ 06 марта 2019

Возможно, вам нужно добавить каталог к ​​имени файла, так как каталог файла отличается от текущего рабочего каталога скрипта, как кажется.

На пути это может быть:

for file in files:
    file_path = os.path.join(root, file)

    if file.endswith(".pdf"):
         print(time.ctime(os.path.getmtime(file_path)))

Это работает для вас?

...