微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

尝试重命名文件时出现Python Win 32错误

如何解决尝试重命名文件时出现Python Win 32错误

我有一个包含多个csv文件文件夹。我必须使用在文件中找到的字符串来更改每个文件文件名。所以我尝试了下面的脚本。在我尝试重命名文件之前,它似乎一直可以正常工作。

我尝试了什么:

  1. 首先,我的程序中没有file.close()行,但没有解决问题
  2. 添加了一行print(file.closed)来查看文件是否实际上已关闭
  3. 我试图从缩进的“ with”块中获取os.rename。但是我一直收到同样的错误
  4. 我试图使os.rename不受限制。但是然后我得到一个Winerror 123,它说文件名,目录名等不正确。
  5. 我还阅读了问题WindowsError 32 while trying to os.renameWindows Error: 32 when trying to rename file in python
  6. 我知道也许我必须使用f.close关闭文件,因为这是处理程序,但是效果也不好。

我尝试过的代码

for f in glob.glob("/path/*.csv"):
    with open(f,"r") as file:
        #read the lines in the csv-file
        data = file.read()
        #search the lines that have been read for a pattern and save that in "search"
        search = re.findall("some_pattern",data)
        #The result was a list. With this line I tried to change it into a string
        file.close()
        Listtostring = ''.join([str(elem) for elem in search])
        #I only want to use a part of the match in the new file name
        name = Listtostring.replace("part_of_string","")
        os.rename(f,f+name)

我希望有人能给我一些提示,并解释我做错了什么。对于Python来说还很陌生,所以如果您能给我一些有关我的错误的见解,那就太好了!

解决方法

感谢您的评论和时间。似乎打开的文件之一在某些过程中仍很忙,因此代码无法正常工作。首先,我关闭了所有正在运行的应用程序,但是没有用。之后,我重新启动计算机,脚本运行正常!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。