尝试os.rename时出现WindowsError 32 [英] WindowsError 32 while trying to os.rename

查看:116
本文介绍了尝试os.rename时出现WindowsError 32的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用的是基本文件夹 REF_IMAGES ,在其中保存指定语言的参考位图.我还有其他几种语言的文件夹,例如 REF_IMAGES-EN REF_IMAGES-NL 等.

I'm using a base folder REF_IMAGES where I keep reference bitmaps for a specified language. I have other several languages folder like REF_IMAGES-EN, REF_IMAGES-NL etc.

我想创建一个脚本,将基本文件夹重命名为其语言,即. REF_IMAGES-xx ,然后将所选语言文件夹重命名为基本文件夹名称.

I want to create a script which will rename the base folder to its language ie. REF_IMAGES-xx and after rename the selected language folder to the base folder name.

为此,我创建了一个txt文件,该文件跟踪文件夹中的原始语言.

To do this I have a created a txt file which keeps track of the original language in the folder.

我的代码如下:

import os

# Define paths
baseFolder = 'D:\\IMAGES\\'
imageFolder = 'D:\\IMAGES\\REF_IMAGES'


LanguageFile = 'FolderLanguage.txt'

# Define selected language
language = '-FR'

# Read current language of baseFolder
textFile = open(os.path.join(imageFolder, LanguageFile), "r")
try:
    currentLanguage = textFile.read()
finally:
    textFile.close()

# Rename image folder to original name. This where the error comes up
os.rename(imageFolder, os.path.join(imageFolder, currentLanguage))

# Search for selected language folder and rename it to default one.
for folderName in os.listdir(baseFolder):
    if folderName.endswith(language): # Look for selected language folder
        os.rename(os.path.join(baseFolder, folderName), os.path.join(baseFolder, folderName.split('-')[0])) # Rename selected language folder to base folder
        currentLanguage = language # Save the language the folder is switched to
        textFile = open(os.path.join(imageFolder, LanguageFile), "w")
        try:
            textFile.write("%s" %currentLanguage)
        finally:
            textFile.close()

但是,尝试将图像文件夹重命名为其原始名称时出现以下错误:

However I get the following error while trying to rename image folder to its original name:

WindowsError: [Error 32] The process cannot access the file because it is being used by another process 

我尝试了几个Unlocker程序,但都不起作用.我想这是脚本本身阻止了它,但是我不知道是什么.

I have tried several several Unlocker programs but non of them work. I suppose it is the script blocking it itself but I can't figure out what.

有人知道吗?问候

推荐答案

我自己发现了问题!错误出在os.rename语法中.通过执行:

Found the issue myself ! The error is in the os.rename syntax. by doing :

os.rename(imageFolder, os.path.join(imageFolder, currentLanguage))

os.path.join(imageFolder,currentLanguage)的输出是 IMAGES \ REF_IMAGES \ -FR ,而不是 IMAGES \ REF_IMAGES-FR >如我所料

The output of os.path.join(imageFolder, currentLanguage) is IMAGES\REF_IMAGES\-FR and not IMAGES\REF_IMAGES-FR as I expected

我现在使用的语法是:

originalName = imageFolder + currentLanguage
os.rename(imageFolder, originalName)

感谢Mayk带领我真正地完成了任务.

Thanks to Mayk who lead me on it actually.

这篇关于尝试os.rename时出现WindowsError 32的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆