1
Я пишу небольшую программу, которая должна пересекать папку из файлов MSG (то есть MS Outlook) и префикс короткой строки в имена файлов , Я продолжаю работать в WindowsError: [Ошибка 32] (Процесс не может получить доступ к файлу, потому что он используется другим процессом) в строке 33 (os.rename (filenameOLD, filenameNEW)). Любая идея почему?Python, WindowsError: [Ошибка 32], файл, используемый другим процессом
import win32com.client
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
import os
path = 'C:\Users\MyName\Desktop\SomeFile\\'
msgFiles = os.listdir(path) # returns list
count = 0
for msgFile in msgFiles:
count = count + 1
msg = outlook.OpenSharedItem(path + msgFile)
date = str(msg.SentOn)
#Extract YYYY, MM, DD, HHMMSS from .msg sent date
YYYY = str(20)+date.split("/")[2][:2]
MM = date.split("/")[1]
DD = date.split("/")[0]
HHMMSS = "".join(date.split()[1].split(":")) + "Hrs"
#Reformat date to valid file name
filenamePrefix = YYYY + DD + MM + " " + HHMMSS + " "
#generate new file name
filenameOLD = path + msgFile
filenameNEW = path + filenamePrefix + msgFile
#rename file
os.rename(filenameOLD, filenameNEW)
print count, "files renamed"
Возможно ли, что файл по-прежнему открыт из 'outlook.OpenSharedItem'? – bernie
Может быть. Не уверен, как закрыть его, хотя – Zengetsu
Do 'del msg' после' date = str (msg.SentOn) ' – bernie