Python 2.7 Python,WindowsError:[Error 32],另一个进程正在使用该文件
我正在写一个小程序,它应该循环遍历一个包含msg文件(即MS Outlook电子邮件)的文件夹,并在文件名前加上一个短字符串。我一直在第33行(os.rename(filenameOLD,filenamew))上遇到WindowsError:[Error 32](进程无法访问该文件,因为它正被另一个进程使用)。知道为什么吗Python 2.7 Python,WindowsError:[Error 32],另一个进程正在使用该文件,python-2.7,Python 2.7,我正在写一个小程序,它应该循环遍历一个包含msg文件(即MS Outlook电子邮件)的文件夹,并在文件名前加上一个短字符串。我一直在第33行(os.rename(filenameOLD,filenamew))上遇到WindowsError:[Error 32](进程无法访问该文件,因为它正被另一个进程使用)。知道为什么吗 import win32com.client outlook = win32com.client.Dispatch("Outlook.Application").GetNam
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"
您已打开邮件而未关闭它。相反,你应该:
# ...
for msgFile in msgFiles:
count = count + 1
msg = outlook.OpenSharedItem(path + msgFile)
date = str(msg.SentOn)
del msg
# ...
文件是否仍在outlook中打开。OpenSharedItem?可能是。不知道如何关闭它,因为在
date=str(msg.SentOn)
之后插入del-msg
就在os.rename(filenameOLD,filenameNEW)
之前。谢谢